diff --git a/.depend b/.depend index 78629a54c8a..5497619785d 100644 --- a/.depend +++ b/.depend @@ -2,182 +2,185 @@ # Run "make depend" to rebuild. # DO NOT DELETE -addr.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 addr.h -addrmatch.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 addr.h match.h log.h ssherr.h -atomicio.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -audit-bsm.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h sshbuf.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +addr.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 addr.h +addrmatch.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 addr.h match.h log.h ssherr.h +atomicio.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +audit-bsm.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h xmalloc.h sshbuf.h sshkey.h servconf.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 auth.o: authfile.h monitor_wrap.h compat.h channels.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h misc.h servconf.h openbsd-compat/sys-queue.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h dispatch.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h misc.h servconf.h openbsd-compat/sys-queue.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-options.h canohost.h uidswap.h packet.h dispatch.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 auth2-hostbased.o: canohost.h monitor_wrap.h pathnames.h match.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 kex.h mac.h crypto_api.h sshbuf.h log.h ssherr.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h servconf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h servconf.h compat.h ssh2.h monitor_wrap.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 kex.h mac.h crypto_api.h sshbuf.h log.h ssherr.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 kex.h mac.h crypto_api.h sshbuf.h log.h ssherr.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h servconf.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h servconf.h compat.h ssh2.h monitor_wrap.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 kex.h mac.h crypto_api.h sshbuf.h log.h ssherr.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth2-pubkey.o: pathnames.h uidswap.h auth-options.h canohost.h monitor_wrap.h authfile.h match.h channels.h session.h sk-api.h auth2.o: digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h monitor_wrap.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h atomicio.h misc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h authfile.h misc.h atomicio.h sshkey.h sshbuf.h krl.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h canohost.h misc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -cipher-chachapoly-libcrypto.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h cipher-chachapoly.h chacha.h poly1305.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h monitor_wrap.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h atomicio.h misc.h oqs-utils.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h authfile.h misc.h atomicio.h sshkey.h sshbuf.h krl.h oqs-utils.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h canohost.h misc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +cipher-chachapoly-libcrypto.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h cipher-chachapoly.h chacha.h poly1305.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 clientloop.o: myproposal.h log.h ssherr.h misc.h readconf.h clientloop.h sshconnect.h authfd.h atomicio.h sshpty.h match.h msg.h hostfile.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h match.h kex.h mac.h crypto_api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h dispatch.h packet.h openbsd-compat/sys-queue.h compat.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -fatal.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h -fe25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 fe25519.h crypto_api.h -ge25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data -groupaccess.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 groupaccess.h match.h log.h ssherr.h -gss-genr.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -gss-serv-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -gss-serv.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -hash.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h pathnames.h digest.h hmac.h sshbuf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h match.h kex.h mac.h crypto_api.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h dispatch.h packet.h openbsd-compat/sys-queue.h compat.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +fatal.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h +fe25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 fe25519.h crypto_api.h +ge25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 fe25519.h crypto_api.h sc25519.h ge25519.h ge25519_base.data +groupaccess.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 groupaccess.h match.h log.h ssherr.h +gss-genr.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +gss-serv-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +gss-serv.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +hash.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h pathnames.h digest.h hmac.h sshbuf.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h kex.o: match.h misc.h monitor.h sshbuf.h digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -kexsntrup761x25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 utf8.h krl.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h match.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h canohost.h auth.h auth-pam.h audit.h sshbuf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -md5crypt.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h ssh.h sshbuf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +kexoqs.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +kexoqsecdh.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +kexsntrup761x25519.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 utf8.h krl.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h match.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h canohost.h auth.h auth-pam.h audit.h sshbuf.h misc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h ssh.h sshbuf.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 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 ssherr.h misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h sk-api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h monitor_fdpass.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h monitor_fdpass.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 monitor_wrap.o: loginrec.h auth-options.h packet.h dispatch.h log.h ssherr.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +oqs-utils.o: oqs-utils.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 packet.o: channels.h ssh.h packet.h dispatch.h sshbuf.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 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 ssherr.h canohost.h misc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h servconf.h openbsd-compat/sys-queue.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 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 ssherr.h canohost.h misc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h servconf.h openbsd-compat/sys-queue.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 readconf.o: uidswap.h myproposal.h digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h ssh.h uidswap.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-darwin.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-null.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-rlimit.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-seccomp-filter.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sandbox-solaris.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h progressmeter.h utf8.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h ssherr.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h ssh.h uidswap.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-darwin.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-null.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-rlimit.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-seccomp-filter.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sandbox-solaris.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 atomicio.h pathnames.h log.h ssherr.h misc.h progressmeter.h utf8.h sftp.h sftp-common.h sftp-client.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 openbsd-compat/sys-queue.h xmalloc.h ssh.h log.h ssherr.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 servconf.o: kex.h mac.h crypto_api.h match.h channels.h groupaccess.h canohost.h packet.h dispatch.h hostfile.h auth.h auth-pam.h audit.h loginrec.h myproposal.h digest.h serverloop.o: cipher-aesctr.h 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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sftp-realpath.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sftp.h misc.h xmalloc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h pathnames.h misc.h utf8.h sftp.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h -sk-usbhid.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sntrup761.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -srclimit.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 addr.h canohost.h log.h ssherr.h misc.h srclimit.h xmalloc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 log.h ssherr.h sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h digest.h ssh-sk.h sk-api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 sshkey.h authfd.h compat.h log.h ssherr.h misc.h digest.h match.h msg.h pathnames.h ssh-pkcs11.h sk-api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-ecdsa-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 sshbuf.h ssherr.h digest.h sshkey.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-ed25519-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h sshkey.h ssh.h digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h sshkey.h ssh.h -ssh-keygen.o: cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 sshbuf.h pathnames.h log.h ssherr.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h sshsig.h ssh-sk.h sk-api.h cipher.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sftp-realpath.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sftp.h misc.h xmalloc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h pathnames.h misc.h utf8.h sftp.h sshbuf.h sftp-common.h sftp-client.h openbsd-compat/glob.h +sk-usbhid.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sntrup761.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +srclimit.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 addr.h canohost.h log.h ssherr.h misc.h srclimit.h xmalloc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 log.h ssherr.h sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h digest.h ssh-sk.h sk-api.h hostfile.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 sshkey.h authfd.h compat.h log.h ssherr.h misc.h digest.h match.h msg.h pathnames.h ssh-pkcs11.h sk-api.h myproposal.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-ecdsa-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 sshbuf.h ssherr.h digest.h sshkey.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-ed25519-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h sshkey.h ssh.h digest.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h sshkey.h ssh.h +ssh-keygen.o: cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h oqs-utils.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 sshbuf.h pathnames.h log.h ssherr.h misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h sshsig.h ssh-sk.h sk-api.h cipher.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssh-keyscan.o: ssherr.h atomicio.h misc.h hostfile.h ssh_api.h ssh2.h dns.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-pkcs11-helper.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 sshbuf.h log.h ssherr.h misc.h sshkey.h authfd.h ssh-pkcs11.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshkey.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-sk-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h sshkey.h msg.h digest.h pathnames.h ssh-sk.h misc.h -ssh-sk-helper.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshkey.h authfd.h misc.h sshbuf.h msg.h uidswap.h ssh-sk.h -ssh-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 packet.h dispatch.h sshbuf.h channels.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h +ssh-oqs.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h sshkey.h ssh.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-pkcs11-helper.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 sshbuf.h log.h ssherr.h misc.h sshkey.h authfd.h ssh-pkcs11.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshkey.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-sk-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h sshkey.h msg.h digest.h pathnames.h ssh-sk.h misc.h +ssh-sk-helper.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshkey.h authfd.h misc.h sshbuf.h msg.h uidswap.h ssh-sk.h +ssh-sk.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 packet.h dispatch.h sshbuf.h channels.h ssh.o: sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h ssherr.h misc.h readconf.h sshconnect.h kex.h mac.h crypto_api.h sshpty.h match.h msg.h version.h myproposal.h utf8.h ssh_api.o: authfile.h misc.h version.h myproposal.h sshbuf.h openbsd-compat/openssl-compat.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-io.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 atomicio.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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-io.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 atomicio.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 sshconnect.o: authfd.h kex.h mac.h crypto_api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -sshconnect2.o: myproposal.h sshconnect.h authfile.h dh.h authfd.h log.h ssherr.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h utf8.h ssh-sk.h sk-api.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h -sshd.o: poly1305.h 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 sk-api.h srclimit.h dh.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +sshconnect2.o: myproposal.h sshconnect.h authfile.h dh.h authfd.h log.h ssherr.h misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h utf8.h ssh-sk.h sk-api.h oqs-utils.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h +sshd.o: poly1305.h 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 sk-api.h srclimit.h dh.h oqs-utils.h ssherr.o: ssherr.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 match.h ssh-sk.h openbsd-compat/openssl-compat.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 openbsd-compat/sys-queue.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h misc.h -sshsig.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 authfd.h authfile.h log.h ssherr.h misc.h sshbuf.h sshsig.h sshkey.h match.h digest.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h compat.h sshbuf.h ttymodes.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h uidswap.h xmalloc.h -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -utf8.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 utf8.h -verify.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -xmalloc.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 ssherr.h -xmss_commons.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -xmss_fast.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -xmss_hash.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -xmss_hash_address.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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 -xmss_wots.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.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-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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 match.h ssh-sk.h openbsd-compat/openssl-compat.h oqs-utils.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 openbsd-compat/sys-queue.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h misc.h +sshsig.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 authfd.h authfile.h log.h ssherr.h misc.h sshbuf.h sshsig.h sshkey.h match.h digest.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h compat.h sshbuf.h ttymodes.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h uidswap.h xmalloc.h +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +utf8.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 utf8.h +verify.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +xmalloc.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 ssherr.h +xmss_commons.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +xmss_fast.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +xmss_hash.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +xmss_hash_address.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 +xmss_wots.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/md5.h openbsd-compat/blf.h openbsd-compat/fnmatch.h openbsd-compat/getopt.h openbsd-compat/bsd-signal.h openbsd-compat/bsd-misc.h openbsd-compat/bsd-setres_id.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 diff --git a/.github/ci-status.md b/.github/ci-status.md new file mode 100644 index 00000000000..0ad8bf5aaf4 --- /dev/null +++ b/.github/ci-status.md @@ -0,0 +1,4 @@ +[![C/C++ CI](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/openssh/openssh-portable/actions/workflows/c-cpp.yml) +[![C/C++ CI self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/selfhosted.yml) +[![Upstream self-hosted](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml/badge.svg)](https://github.com/openssh/openssh-portable-selfhosted/actions/workflows/upstream.yml) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/openssh.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:openssh) diff --git a/.github/configs b/.github/configs index c47f1a523b1..853da58a51e 100755 --- a/.github/configs +++ b/.github/configs @@ -15,6 +15,8 @@ LTESTS="" SKIP_LTESTS="" SUDO=sudo # run with sudo by default TEST_SSH_UNSAFE_PERMISSIONS=1 +# Stop on first test failure to minimize logs +TEST_SSH_FAIL_FATAL=yes CONFIGFLAGS="" LIBCRYPTOFLAGS="" @@ -22,6 +24,32 @@ LIBCRYPTOFLAGS="" case "$config" in default|sol64) ;; + c89) + CC="gcc" + CFLAGS="-Wall -std=c89 -pedantic -Werror=vla" + CONFIGFLAGS="--without-zlib" + LIBCRYPTOFLAGS="--without-openssl" + TEST_TARGET=t-exec + ;; + cygwin-release) + CONFIGFLAGS="--with-libedit --with-xauth=/usr/bin/xauth --disable-strip --with-security-key-builtin" + ;; + clang-12-Werror) + CC="clang-12" + # clang's implicit-fallthrough requires that the code be annotated with + # __attribute__((fallthrough)) and does not understand /* FALLTHROUGH */ + CFLAGS="-Wall -Wextra -O2 -Wno-error=implicit-fallthrough" + CONFIGFLAGS="--with-pam --with-Werror" + ;; + gcc-11-Werror) + CC="gcc" + # -Wnoformat-truncation in gcc 7.3.1 20180130 fails on fmt_scaled + CFLAGS="-Wall -Wextra -Wno-format-truncation -O2 -Wimplicit-fallthrough=4" + CONFIGFLAGS="--with-pam --with-Werror" + ;; + clang*|gcc*) + CC="$config" + ;; kitchensink) CONFIGFLAGS="--with-kerberos5 --with-libedit --with-pam" CONFIGFLAGS="${CONFIGFLAGS} --with-security-key-builtin --with-selinux" @@ -30,21 +58,34 @@ case "$config" in hardenedmalloc) CONFIGFLAGS="--with-ldflags=-lhardened_malloc" ;; - kerberos5) + tcmalloc) + CONFIGFLAGS="--with-ldflags=-ltcmalloc" + ;; + krb5|heimdal) CONFIGFLAGS="--with-kerberos5" ;; libedit) CONFIGFLAGS="--with-libedit" ;; + musl) + CC="musl-gcc" + CONFIGFLAGS="--without-zlib" + LIBCRYPTOFLAGS="--without-openssl" + TEST_TARGET="t-exec" + ;; + pam-krb5) + CONFIGFLAGS="--with-pam --with-kerberos5" + SSHD_CONFOPTS="UsePam yes" + ;; *pam) CONFIGFLAGS="--with-pam" SSHD_CONFOPTS="UsePam yes" ;; - libressl-head) - LIBCRYPTOFLAGS="--with-ssl-dir=/opt/libressl/head --with-rpath=-Wl,-rpath," + libressl-*) + LIBCRYPTOFLAGS="--with-ssl-dir=/opt/libressl --with-rpath=-Wl,-rpath," ;; - openssl-head) - LIBCRYPTOFLAGS="--with-ssl-dir=/opt/openssl/head --with-rpath=-Wl,-rpath," + openssl-*) + LIBCRYPTOFLAGS="--with-ssl-dir=/opt/openssl --with-rpath=-Wl,-rpath," ;; selinux) CONFIGFLAGS="--with-selinux" @@ -66,9 +107,9 @@ case "$config" in # Valgrind slows things down enough that the agent timeout test # won't reliably pass, and the unit tests run longer than allowed # by github so split into three separate tests. - tests2="rekey integrity" - tests3="krl forward-control sshsig" - tests4="cert-userkey cert-hostkey kextype sftp-perm keygen-comment" + tests2="rekey integrity try-ciphers sftp" + tests3="krl forward-control sshsig agent-restrict kextype" + tests4="cert-userkey cert-hostkey kextype sftp-perm keygen-comment percent" case "$config" in valgrind-1) # All tests except agent-timeout (which is flaky under valgrind) @@ -104,11 +145,52 @@ case "$config" in esac case "${TARGET_HOST}" in + dfly58*|dfly60*) + # scp 3-way connection hangs on these so skip until sorted. + SKIP_LTESTS=scp3 + ;; + hurd) + SKIP_LTESTS="forwarding multiplex proxy-connect hostkey-agent agent-ptrace" + ;; + minix3) + LIBCRYPTOFLAGS="--without-openssl --disable-security-key" + # Minix does not have a loopback interface so we have to skip any + # test that relies on one. + # Also, Minix seems to be very limited in the number of select() + # calls that can be operating concurrently, so prune additional tests for that. + T="addrmatch agent-restrict brokenkeys cfgmatch cfgmatchlisten cfgparse connect + connect-uri exit-status forward-control forwarding hostkey-agent + key-options keyscan knownhosts-command login-timeout multiplex + reconfigure reexec rekey scp scp-uri scp3 sftp sftp-badcmds + sftp-batch sftp-cmds sftp-glob sftp-perm sftp-uri stderr-data + transfer" + SKIP_LTESTS="$(echo $T)" + TEST_TARGET=t-exec + SUDO="" + ;; + nbsd4) + # System compiler will ICE on some files with fstack-protector + # SHA256 functions in sha2.h conflict with OpenSSL's breaking sk-dummy + CONFIGFLAGS="${CONFIGFLAGS} --without-hardening --disable-security-key" + ;; sol10|sol11) # sol10 VM is 32bit and the unit tests are slow. # sol11 has 4 test configs so skip unit tests to speed up. TEST_TARGET="tests SKIP_UNIT=1" ;; + win10) + # No sudo on Windows. + SUDO="" + ;; +esac + +# Unless specified otherwise, build without OpenSSL on Mac OS since +# modern versions don't ship with libcrypto. +case "`./config.guess`" in +*-darwin*) + LIBCRYPTOFLAGS="--without-openssl" + TEST_TARGET=t-exec + ;; esac # If we have a local openssl/libressl, use that. @@ -123,4 +205,10 @@ fi CONFIGFLAGS="${CONFIGFLAGS} ${LIBCRYPTOFLAGS}" -export LTESTS SUDO TEST_TARGET TEST_SSH_UNSAFE_PERMISSIONS +if [ -x "$(which plink 2>/dev/null)" ]; then + REGRESS_INTEROP_PUTTY=yes + export REGRESS_INTEROP_PUTTY +fi + +export CC CFLAGS LTESTS SUDO +export TEST_TARGET TEST_SSH_UNSAFE_PERMISSIONS TEST_SSH_FAIL_FATAL diff --git a/.github/configure.sh b/.github/configure.sh index e098730f02d..502bf5f0d40 100755 --- a/.github/configure.sh +++ b/.github/configure.sh @@ -2,5 +2,20 @@ . .github/configs $1 -set -x +printf "$ " + +if [ "x$CC" != "x" ]; then + printf "CC='$CC' " +fi +if [ "x$CFLAGS" != "x" ]; then + printf "CFLAGS='$CFLAGS' " +fi +if [ "x$CPPFLAGS" != "x" ]; then + printf "CPPFLAGS='$CPPFLAGS' " +fi +if [ "x$LDFLAGS" != "x" ]; then + printf "LDFLAGS='$LDFLAGS' " +fi + +echo ./configure ${CONFIGFLAGS} ./configure ${CONFIGFLAGS} diff --git a/.github/run_test.sh b/.github/run_test.sh index 66fd5260362..adf2568ad1e 100755 --- a/.github/run_test.sh +++ b/.github/run_test.sh @@ -1,33 +1,34 @@ -#!/usr/bin/env bash +#!/bin/sh -. .github/configs $1 $2 +. .github/configs $1 [ -z "${SUDO}" ] || ${SUDO} mkdir -p /var/empty set -ex +output_failed_logs() { + for i in regress/failed*; do + if [ -f "$i" ]; then + echo ------------------------------------------------------------------------- + echo LOGFILE $i + cat $i + echo ------------------------------------------------------------------------- + fi + done +} +trap output_failed_logs 0 + if [ -z "${LTESTS}" ]; then make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" - result=$? else make ${TEST_TARGET} SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}" - result=$? fi if [ ! -z "${SSHD_CONFOPTS}" ]; then - echo "rerunning tests with TEST_SSH_SSHD_CONFOPTS='${SSHD_CONFOPTS}'" - make t-exec TEST_SSH_SSHD_CONFOPTS="${SSHD_CONFOPTS}" - result2=$? - if [ "${result2}" -ne 0 ]; then - result="${result2}" + echo "rerunning t-exec with TEST_SSH_SSHD_CONFOPTS='${SSHD_CONFOPTS}'" + if [ -z "${LTESTS}" ]; then + make t-exec SKIP_LTESTS="${SKIP_LTESTS}" TEST_SSH_SSHD_CONFOPTS="${SSHD_CONFOPTS}" + else + make t-exec SKIP_LTESTS="${SKIP_LTESTS}" LTESTS="${LTESTS}" TEST_SSH_SSHD_CONFOPTS="${SSHD_CONFOPTS}" fi fi - -if [ "$result" -ne "0" ]; then - for i in regress/failed*; do - echo ------------------------------------------------------------------------- - echo LOGFILE $i - cat $i - echo ------------------------------------------------------------------------- - done -fi diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index 6240ef06ef5..4e923c6e0ae 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -1,4 +1,13 @@ -#!/usr/bin/env bash +#!/bin/sh + + . .github/configs $@ + +case "`./config.guess`" in +*-darwin*) + brew install automake + exit 0 + ;; +esac case $(./config.guess) in *-darwin*) @@ -11,6 +20,7 @@ TARGETS=$@ PACKAGES="" INSTALL_FIDO_PPA="no" +export DEBIAN_FRONTEND=noninteractive #echo "Setting up for '$TARGETS'" @@ -19,23 +29,30 @@ set -ex lsb_release -a if [ "${TARGETS}" = "kitchensink" ]; then - TARGETS="kerberos5 libedit pam sk selinux" + TARGETS="krb5 libedit pam sk selinux" fi +for flag in $CONFIGFLAGS; do + case "$flag" in + --with-pam) PACKAGES="${PACKAGES} libpam0g-dev" ;; + --with-libedit) PACKAGES="${PACKAGES} libedit-dev" ;; + esac +done + for TARGET in $TARGETS; do case $TARGET in - default|without-openssl|without-zlib) + default|without-openssl|without-zlib|c89|libedit|*pam) # nothing to do ;; - kerberos5) - PACKAGES="$PACKAGES heimdal-dev" - #PACKAGES="$PACKAGES libkrb5-dev" - ;; - libedit) - PACKAGES="$PACKAGES libedit-dev" + clang-*|gcc-*) + compiler=$(echo $TARGET | sed 's/-Werror//') + PACKAGES="$PACKAGES $compiler" ;; - *pam) - PACKAGES="$PACKAGES libpam0g-dev" + krb5) + PACKAGES="$PACKAGES libkrb5-dev" + ;; + heimdal) + PACKAGES="$PACKAGES heimdal-dev" ;; sk) INSTALL_FIDO_PPA="yes" @@ -46,12 +63,33 @@ for TARGET in $TARGETS; do ;; hardenedmalloc) INSTALL_HARDENED_MALLOC=yes + ;; + musl) + PACKAGES="$PACKAGES musl-tools" + ;; + tcmalloc) + PACKAGES="$PACKAGES libgoogle-perftools-dev" + ;; + openssl-noec) + INSTALL_OPENSSL=OpenSSL_1_1_1k + SSLCONFOPTS="no-ec" + ;; + openssl-*) + INSTALL_OPENSSL=$(echo ${TARGET} | cut -f2 -d-) + case ${INSTALL_OPENSSL} in + 1.1.1_stable) INSTALL_OPENSSL="OpenSSL_1_1_1-stable" ;; + 1.*) INSTALL_OPENSSL="OpenSSL_$(echo ${INSTALL_OPENSSL} | tr . _)" ;; + 3.*) INSTALL_OPENSSL="openssl-${INSTALL_OPENSSL}" ;; + esac + PACKAGES="${PACKAGES} putty-tools" ;; - openssl-head) - INSTALL_OPENSSL_HEAD=yes - ;; - libressl-head) - INSTALL_LIBRESSL_HEAD=yes + libressl-*) + INSTALL_LIBRESSL=$(echo ${TARGET} | cut -f2 -d-) + case ${INSTALL_LIBRESSL} in + master) ;; + *) INSTALL_LIBRESSL="v$(echo ${TARGET} | cut -f2 -d-)" ;; + esac + PACKAGES="${PACKAGES} putty-tools" ;; valgrind*) PACKAGES="$PACKAGES valgrind" @@ -62,10 +100,10 @@ for TARGET in $TARGETS; do esac done -if [ "yes" == "$INSTALL_FIDO_PPA" ]; then +if [ "yes" = "$INSTALL_FIDO_PPA" ]; then sudo apt update -qq - sudo apt install software-properties-common - sudo apt-add-repository ppa:yubico/stable + sudo apt install -qy software-properties-common + sudo apt-add-repository -y ppa:yubico/stable fi if [ "x" != "x$PACKAGES" ]; then @@ -77,21 +115,25 @@ if [ "${INSTALL_HARDENED_MALLOC}" = "yes" ]; then (cd ${HOME} && git clone https://github.com/GrapheneOS/hardened_malloc.git && cd ${HOME}/hardened_malloc && - make -j2 && sudo cp libhardened_malloc.so /usr/lib/) + make -j2 && sudo cp out/libhardened_malloc.so /usr/lib/) fi -if [ "${INSTALL_OPENSSL_HEAD}" = "yes" ];then +if [ ! -z "${INSTALL_OPENSSL}" ]; then (cd ${HOME} && git clone https://github.com/openssl/openssl.git && cd ${HOME}/openssl && - ./config no-threads no-engine no-fips no-shared --prefix=/opt/openssl/head && - make -j2 && sudo make install_sw) + git checkout ${INSTALL_OPENSSL} && + ./config no-threads shared ${SSLCONFOPTS} \ + --prefix=/opt/openssl && + make && sudo make install_sw) fi -if [ "${INSTALL_LIBRESSL_HEAD}" = "yes" ];then +if [ ! -z "${INSTALL_LIBRESSL}" ]; then (mkdir -p ${HOME}/libressl && cd ${HOME}/libressl && git clone https://github.com/libressl-portable/portable.git && - cd ${HOME}/libressl/portable && sh update.sh && sh autogen.sh && - ./configure --prefix=/opt/libressl/head && - make -j2 && sudo make install_sw) + cd ${HOME}/libressl/portable && + git checkout ${INSTALL_LIBRESSL} && + sh update.sh && sh autogen.sh && + ./configure --prefix=/opt/libressl && + make -j2 && sudo make install) fi diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index c4ae2843430..c9620a301de 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -13,7 +13,7 @@ jobs: fail-fast: false matrix: # First we test all OSes in the default configuration. - os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, macos-10.15] + os: [ubuntu-20.04, ubuntu-18.04, macos-10.15, macos-11.0] configs: [default] # Then we include any extra configs we want to test for specific VMs. # Valgrind slows things down quite a bit, so start them first. @@ -23,21 +23,50 @@ jobs: - { os: ubuntu-20.04, configs: valgrind-3 } - { os: ubuntu-20.04, configs: valgrind-4 } - { os: ubuntu-20.04, configs: valgrind-unit } + - { os: ubuntu-20.04, configs: c89 } + - { os: ubuntu-20.04, configs: clang-6.0 } + - { os: ubuntu-20.04, configs: clang-8 } + - { os: ubuntu-20.04, configs: clang-9 } + - { os: ubuntu-20.04, configs: clang-10 } + - { os: ubuntu-20.04, configs: clang-11 } + - { os: ubuntu-20.04, configs: clang-12-Werror } + - { os: ubuntu-20.04, configs: gcc-7 } + - { os: ubuntu-20.04, configs: gcc-8 } + - { os: ubuntu-20.04, configs: gcc-10 } + - { os: ubuntu-20.04, configs: gcc-11-Werror } - { os: ubuntu-20.04, configs: pam } - { os: ubuntu-20.04, configs: kitchensink } - { os: ubuntu-20.04, configs: hardenedmalloc } - - { os: ubuntu-20.04, configs: libressl-head } - - { os: ubuntu-20.04, configs: openssl-head } + - { os: ubuntu-20.04, configs: tcmalloc } + - { os: ubuntu-20.04, configs: musl } + - { os: ubuntu-latest, configs: libressl-master } + - { os: ubuntu-latest, configs: libressl-2.2.9 } + - { os: ubuntu-latest, configs: libressl-2.8.3 } + - { os: ubuntu-latest, configs: libressl-3.0.2 } + - { os: ubuntu-latest, configs: libressl-3.2.6 } + - { os: ubuntu-latest, configs: libressl-3.3.4 } + - { os: ubuntu-latest, configs: libressl-3.4.1 } + - { os: ubuntu-latest, configs: openssl-master } + - { os: ubuntu-latest, configs: openssl-noec } + - { os: ubuntu-latest, configs: openssl-1.0.1 } + - { os: ubuntu-latest, configs: openssl-1.0.1u } + - { os: ubuntu-latest, configs: openssl-1.0.2u } + - { os: ubuntu-latest, configs: openssl-1.1.0h } + - { os: ubuntu-latest, configs: openssl-1.1.1 } + - { os: ubuntu-latest, configs: openssl-1.1.1k } + - { os: ubuntu-latest, configs: openssl-3.0.0 } + - { os: ubuntu-latest, configs: openssl-1.1.1_stable } # stable branch + - { os: ubuntu-latest, configs: openssl-3.0 } # stable branch - { os: ubuntu-18.04, configs: pam } - - { os: ubuntu-18.04, configs: kerberos5 } + - { os: ubuntu-18.04, configs: krb5 } + - { os: ubuntu-18.04, configs: heimdal } - { os: ubuntu-18.04, configs: libedit } - { os: ubuntu-18.04, configs: sk } - { os: ubuntu-18.04, configs: selinux } - { os: ubuntu-18.04, configs: kitchensink } - { os: ubuntu-18.04, configs: without-openssl } - - { os: ubuntu-16.04, configs: pam } - - { os: ubuntu-16.04, configs: kitchensink } - { os: macos-10.15, configs: pam } + - { os: macos-11.0, configs: pam } runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 @@ -47,6 +76,13 @@ jobs: run: autoreconf - name: configure run: ./.github/configure.sh ${{ matrix.configs }} + - name: save config + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-config + path: config.h + - name: make clean + run: make clean - name: make run: make -j2 - name: make tests diff --git a/.github/workflows/selfhosted.yml b/.github/workflows/selfhosted.yml index 1cf6b5da0a3..09f7af93991 100644 --- a/.github/workflows/selfhosted.yml +++ b/.github/workflows/selfhosted.yml @@ -10,27 +10,62 @@ jobs: runs-on: ${{ matrix.os }} env: TARGET_HOST: ${{ matrix.os }} - SUDO: sudo strategy: fail-fast: false # We use a matrix in two parts: firstly all of the VMs are tested with the - # default config. "vm" corresponds to a label associated with the worker. + # default config. "os" corresponds to a label associated with the worker. matrix: - os: [bbone, dfly30, dfly48, dfly58, fbsd6, fbsd7, fbsd12, sol10, sol11] + os: + - ARM64 + - alpine + - bbone + - dfly30 + - dfly48 + - dfly58 + - dfly60 + - fbsd6 + - fbsd10 + - fbsd12 + - fbsd13 + # - hurd + - minix3 + # - nbsd2 + - nbsd3 + - nbsd4 + - nbsd8 + - nbsd9 + - obsd51 + - obsd67 + - obsd69 + - obsd70 + - obsdsnap + - openindiana + # - rocky84 + - sol10 + - sol11 + - win10 configs: - default # Then we include any extra configs we want to test for specific VMs. include: - - { os: dfly30, configs: without-openssl} - - { os: dfly48, configs: pam } - - { os: dfly58, configs: pam } - - { os: fbsd6, configs: pam } - - { os: fbsd7, configs: pam } - - { os: fbsd12, configs: pam } - - { os: sol10, configs: pam } - - { os: sol11, configs: pam } - - { os: sol11, configs: sol64 } - # - { os: sol11, configs: sol64-pam } + - { os: ARM64, configs: pam } + - { os: dfly30, configs: without-openssl} + - { os: dfly48, configs: pam } + - { os: dfly58, configs: pam } + - { os: dfly60, configs: pam } + - { os: fbsd6, configs: pam } + - { os: fbsd10, configs: pam } + - { os: fbsd12, configs: pam } + - { os: fbsd13, configs: pam } + - { os: nbsd8, configs: pam } + - { os: nbsd9, configs: pam } + - { os: openindiana, configs: pam } + # - { os: rocky84, configs: pam } + - { os: sol10, configs: pam } + - { os: sol11, configs: pam-krb5 } + - { os: sol11, configs: sol64 } + # - { os: sol11, configs: sol64-pam } + - { os: win10, configs: cygwin-release } steps: - uses: actions/checkout@v2 - name: autoreconf @@ -41,10 +76,18 @@ jobs: run: vmstartup - name: configure run: vmrun ./.github/configure.sh ${{ matrix.configs }} + - name: save config + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-config + path: config.h + - name: make clean + run: vmrun make clean - name: make run: vmrun make - name: make tests run: vmrun ./.github/run_test.sh ${{ matrix.configs }} + timeout-minutes: 300 - name: save logs if: failure() uses: actions/upload-artifact@v2 diff --git a/.github/workflows/upstream.yml b/.github/workflows/upstream.yml new file mode 100644 index 00000000000..b91083c6518 --- /dev/null +++ b/.github/workflows/upstream.yml @@ -0,0 +1,44 @@ +name: Upstream self-hosted + +on: + push: + branches: [ master, ci ] + +jobs: + selfhosted: + if: github.repository == 'openssh/openssh-portable-selfhosted' + runs-on: ${{ matrix.os }} + env: + TARGET_HOST: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ obsdsnap, obsdsnap-i386 ] + configs: [ default, without-openssl ] + steps: + - uses: actions/checkout@v2 + - name: shutdown VM if running + run: vmshutdown + - name: startup VM + run: vmstartup + - name: update source + run: vmrun "cd /usr/src && cvs up -dPA usr.bin/ssh regress/usr.bin/ssh" + - name: make clean + run: vmrun "cd /usr/src/usr.bin/ssh && make obj && make clean" + - name: make + run: vmrun "cd /usr/src/usr.bin/ssh && if test '${{ matrix.configs }}' = 'without-openssl'; then make OPENSSL=no; else make; fi" + - name: make install + run: vmrun "cd /usr/src/usr.bin/ssh && sudo make install" + - name: make tests + run: vmrun "cd /usr/src/regress/usr.bin/ssh && make obj && make clean && if test '${{ matrix.configs }}' = 'without-openssl'; then make SUDO=sudo OPENSSL=no; else make SUDO=sudo; fi" + timeout-minutes: 300 + - name: save logs + if: failure() + uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.os }}-${{ matrix.configs }}-logs + path: | + /usr/obj/regress/usr.bin/ssh/*.log + - name: shutdown VM + if: always() + run: vmshutdown diff --git a/.skipped-commit-ids b/.skipped-commit-ids index 1de78172232..c606eaee6c5 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids @@ -23,6 +23,7 @@ d9b910e412d139141b072a905e66714870c38ac0 Makefile.inc 07b5031e9f49f2b69ac5e85b8da4fc9e393992a0 Makefile.inc cc12a9029833d222043aecd252d654965c351a69 moduli-gen Makefile 7ac6c252d2a5be8fbad4c66d9d35db507c9dac5b moduli update +6b52cd2b637f3d29ef543f0ce532a2bce6d86af5 makefile change Old upstream tree: diff --git a/INSTALL b/INSTALL index d97946fe027..b6e53ab6c08 100644 --- a/INSTALL +++ b/INSTALL @@ -197,11 +197,6 @@ it if lastlog is installed in a different place. --with-osfsia, --without-osfsia will enable or disable OSF1's Security Integration Architecture. The default for OSF1 machines is enable. ---with-md5-passwords will enable the use of MD5 passwords. Enable this -if your operating system uses MD5 passwords and the system crypt() does -not support them directly (see the crypt(3/3c) man page). If enabled, the -resulting binary will support both MD5 and traditional crypt passwords. - --with-utmpx enables utmpx support. utmpx support is automatic for some platforms. @@ -261,8 +256,8 @@ Replacing /etc/ssh with the correct path to the configuration directory. (${prefix}/etc or whatever you specified with --sysconfdir during configuration). -If you have configured OpenSSH with EGD support, ensure that EGD is -running and has collected some Entropy. +If you have configured OpenSSH with EGD/prngd support, ensure that EGD or +prngd is running and has collected some entropy first. For more information on configuration, please refer to the manual pages for sshd, ssh and ssh-agent. diff --git a/LICENCE b/LICENCE index 5999c5e9d50..77ef5769971 100644 --- a/LICENCE +++ b/LICENCE @@ -210,22 +210,14 @@ OpenSSH contains no GPL code. 8) Portable OpenSSH contains the following additional licenses: - a) md5crypt.c, md5crypt.h - - * "THE BEER-WARE LICENSE" (Revision 42): - * wrote this file. As long as you retain this - * notice you can do whatever you want with this stuff. If we meet - * some day, and you think this stuff is worth it, you can buy me a - * beer in return. Poul-Henning Kamp - - b) snprintf replacement + a) snprintf replacement * Copyright Patrick Powell 1995 * This code is based on code written by Patrick Powell * (papowell@astart.com) It may be used for any purpose as long as this * notice remains intact on all source code distributions - c) Compatibility code (openbsd-compat) + b) Compatibility code (openbsd-compat) Apart from the previously mentioned licenses, various pieces of code in the openbsd-compat/ subdirectory are licensed as follows: @@ -314,8 +306,8 @@ OpenSSH contains no GPL code. * authorization. * ****************************************************************************/ - The Blowfish cipher implementation is licensed by Niels Provis under - a 4-clause BSD license: + The Blowfish cipher implementation is licensed by Niels Provos under + a 3-clause BSD license: * Blowfish - a fast block cipher designed by Bruce Schneier * @@ -330,10 +322,7 @@ OpenSSH contains no GPL code. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Niels Provos. - * 4. The name of the author may not be used to endorse or promote products + * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR diff --git a/Makefile.in b/Makefile.in index bff4ba62ac9..d61967af50a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -17,6 +17,7 @@ piddir=@piddir@ srcdir=@srcdir@ top_srcdir=@top_srcdir@ abs_top_srcdir=@abs_top_srcdir@ +abs_top_builddir=@abs_top_builddir@ DESTDIR= VPATH=@srcdir@ @@ -30,6 +31,7 @@ PRIVSEP_PATH=@PRIVSEP_PATH@ SSH_PRIVSEP_USER=@SSH_PRIVSEP_USER@ STRIP_OPT=@STRIP_OPT@ TEST_SHELL=@TEST_SHELL@ +BUILDDIR=@abs_top_builddir@ PATHS= -DSSHDIR=\"$(sysconfdir)\" \ -D_PATH_SSH_PROGRAM=\"$(SSH_PROGRAM)\" \ @@ -128,13 +130,15 @@ SSHDOBJS=sshd.o auth-rhosts.o auth-passwd.o \ auth2-none.o auth2-passwd.o auth2-pubkey.o \ monitor.o monitor_wrap.o auth-krb5.o \ auth2-gss.o gss-serv.o gss-serv-krb5.o \ - loginrec.o auth-pam.o auth-shadow.o auth-sia.o md5crypt.o \ + loginrec.o auth-pam.o auth-shadow.o auth-sia.o \ srclimit.o sftp-server.o sftp-common.o \ sandbox-null.o sandbox-rlimit.o sandbox-systrace.o sandbox-darwin.o \ sandbox-seccomp-filter.o sandbox-capsicum.o sandbox-pledge.o \ sandbox-solaris.o uidswap.o $(SKOBJS) -SCP_OBJS= scp.o progressmeter.o +SFTP_CLIENT_OBJS=sftp-common.o sftp-client.o sftp-glob.o + +SCP_OBJS= scp.o progressmeter.o $(SFTP_CLIENT_OBJS) SSHADD_OBJS= ssh-add.o $(SKOBJS) @@ -152,7 +156,7 @@ SSHKEYSCAN_OBJS=ssh-keyscan.o $(SKOBJS) SFTPSERVER_OBJS=sftp-common.o sftp-server.o sftp-server-main.o -SFTP_OBJS= sftp.o sftp-client.o sftp-common.o sftp-glob.o progressmeter.o +SFTP_OBJS= sftp.o progressmeter.o $(SFTP_CLIENT_OBJS) MANPAGES = moduli.5.out scp.1.out ssh-add.1.out ssh-agent.1.out ssh-keygen.1.out ssh-keyscan.1.out ssh.1.out sshd.8.out sftp-server.8.out sftp.1.out ssh-keysign.8.out ssh-pkcs11-helper.8.out ssh-sk-helper.8.out sshd_config.5.out ssh_config.5.out MANPAGES_IN = moduli.5 scp.1 ssh-add.1 ssh-agent.1 ssh-keygen.1 ssh-keyscan.1 ssh.1 sshd.8 sftp-server.8 sftp.1 ssh-keysign.8 ssh-pkcs11-helper.8 ssh-sk-helper.8 sshd_config.5 ssh_config.5 @@ -238,7 +242,7 @@ ssh-keyscan$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHKEYSCAN_OBJS) $(LD) -o $@ $(SSHKEYSCAN_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) sftp-server$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTPSERVER_OBJS) - $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) + $(LD) -o $@ $(SFTPSERVER_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat -lssh $(LIBS) sftp$(EXEEXT): $(LIBCOMPAT) libssh.a $(SFTP_OBJS) $(LD) -o $@ $(SFTP_OBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(LIBEDIT) @@ -334,6 +338,9 @@ distclean: regressclean rm -f regress/unittests/sshsig/test_sshsig rm -f regress/unittests/utf8/*.o rm -f regress/unittests/utf8/test_utf8 + rm -f regress/misc/sk-dummy/*.o + rm -f regress/misc/sk-dummy/*.lo + rm -f regress/misc/sk-dummy/sk-dummy.so (cd openbsd-compat && $(MAKE) distclean) if test -d pkg ; then \ rm -fr pkg ; \ @@ -651,7 +658,9 @@ UNITTESTS_TEST_MISC_OBJS=\ regress/unittests/misc/test_parse.o \ regress/unittests/misc/test_expand.o \ regress/unittests/misc/test_convtime.o \ - regress/unittests/misc/test_argv.o + regress/unittests/misc/test_argv.o \ + regress/unittests/misc/test_strdelim.o \ + regress/unittests/misc/test_hpdelim.o regress/unittests/misc/test_misc$(EXEEXT): \ ${UNITTESTS_TEST_MISC_OBJS} \ @@ -704,52 +713,49 @@ regress-unit-binaries: regress-prep $(REGRESSLIBS) \ regress/unittests/sshbuf/test_sshbuf$(EXEEXT) \ regress/unittests/sshkey/test_sshkey$(EXEEXT) \ regress/unittests/sshsig/test_sshsig$(EXEEXT) \ - regress/unittests/utf8/test_utf8$(EXEEXT) \ + regress/unittests/utf8/test_utf8$(EXEEXT) tests: file-tests t-exec interop-tests unit echo all tests passed unit: regress-unit-binaries - BUILDDIR=`pwd`; \ cd $(srcdir)/regress || exit $$?; \ $(MAKE) \ - .OBJDIR="$${BUILDDIR}/regress" \ - .CURDIR="`pwd`" \ - OBJ="$${BUILDDIR}/regress" \ + .CURDIR="$(abs_top_srcdir)/regress" \ + .OBJDIR="$(BUILDDIR)/regress" \ + OBJ="$(BUILDDIR)/regress" \ $@ && echo $@ tests passed interop-tests t-exec file-tests: regress-prep regress-binaries $(TARGETS) - BUILDDIR=`pwd`; \ cd $(srcdir)/regress || exit $$?; \ EGREP='@EGREP@' \ $(MAKE) \ - .OBJDIR="$${BUILDDIR}/regress" \ - .CURDIR="`pwd`" \ - BUILDDIR="$${BUILDDIR}" \ - OBJ="$${BUILDDIR}/regress/" \ - PATH="$${BUILDDIR}:$${PATH}" \ + .CURDIR="$(abs_top_srcdir)/regress" \ + .OBJDIR="$(BUILDDIR)/regress" \ + BUILDDIR="$(BUILDDIR)" \ + OBJ="$(BUILDDIR)/regress" \ + PATH="$(BUILDDIR):$${PATH}" \ TEST_ENV=MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ TEST_MALLOC_OPTIONS="@TEST_MALLOC_OPTIONS@" \ - TEST_SSH_SCP="$${BUILDDIR}/scp" \ - TEST_SSH_SSH="$${BUILDDIR}/ssh" \ - TEST_SSH_SSHD="$${BUILDDIR}/sshd" \ - TEST_SSH_SSHAGENT="$${BUILDDIR}/ssh-agent" \ - TEST_SSH_SSHADD="$${BUILDDIR}/ssh-add" \ - TEST_SSH_SSHKEYGEN="$${BUILDDIR}/ssh-keygen" \ - TEST_SSH_SSHPKCS11HELPER="$${BUILDDIR}/ssh-pkcs11-helper" \ - TEST_SSH_SSHKEYSCAN="$${BUILDDIR}/ssh-keyscan" \ - TEST_SSH_SFTP="$${BUILDDIR}/sftp" \ - TEST_SSH_PKCS11_HELPER="$${BUILDDIR}/ssh-pkcs11-helper" \ - TEST_SSH_SK_HELPER="$${BUILDDIR}/ssh-sk-helper" \ - TEST_SSH_SFTPSERVER="$${BUILDDIR}/sftp-server" \ + TEST_SSH_SCP="$(BUILDDIR)/scp" \ + TEST_SSH_SSH="$(BUILDDIR)/ssh" \ + TEST_SSH_SSHD="$(BUILDDIR)/sshd" \ + TEST_SSH_SSHAGENT="$(BUILDDIR)/ssh-agent" \ + TEST_SSH_SSHADD="$(BUILDDIR)/ssh-add" \ + TEST_SSH_SSHKEYGEN="$(BUILDDIR)/ssh-keygen" \ + TEST_SSH_SSHPKCS11HELPER="$(BUILDDIR)/ssh-pkcs11-helper" \ + TEST_SSH_SSHKEYSCAN="$(BUILDDIR)/ssh-keyscan" \ + TEST_SSH_SFTP="$(BUILDDIR)/sftp" \ + TEST_SSH_PKCS11_HELPER="$(BUILDDIR)/ssh-pkcs11-helper" \ + TEST_SSH_SK_HELPER="$(BUILDDIR)/ssh-sk-helper" \ + TEST_SSH_SFTPSERVER="$(BUILDDIR)/sftp-server" \ TEST_SSH_MODULI_FILE="$(abs_top_srcdir)/moduli" \ TEST_SSH_PLINK="plink" \ TEST_SSH_PUTTYGEN="puttygen" \ TEST_SSH_CONCH="conch" \ TEST_SSH_IPV6="@TEST_SSH_IPV6@" \ TEST_SSH_UTF8="@TEST_SSH_UTF8@" \ - TEST_SSH_ECC="@TEST_SSH_ECC@" \ - TEST_SHELL="${TEST_SHELL}" \ + TEST_SHELL="$(TEST_SHELL)" \ EXEEXT="$(EXEEXT)" \ $@ && echo all $@ passed diff --git a/PROTOCOL b/PROTOCOL index 0b2ea60a74b..e6a7d60eef0 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -342,9 +342,41 @@ signal to a session attached to a channel. OpenSSH supports one extension signal "INFO@openssh.com" that allows sending SIGINFO on BSD-derived systems. -3. SFTP protocol changes +3. Authentication protocol changes -3.1. sftp: Reversal of arguments to SSH_FXP_SYMLINK +3.1. Host-bound public key authentication + +This is trivial change to the traditional "publickey" authentication +method. The authentication request is identical to the original method +but for the name and one additional field: + + byte SSH2_MSG_USERAUTH_REQUEST + string username + string "ssh-connection" + string "publickey-hostbound-v00@openssh.com" + bool has_signature + string pkalg + string public key + string server host key + +Because the entire SSH2_MSG_USERAUTH_REQUEST message is included in +the signed data, this ensures that a binding between the destination +user, the server identity and the session identifier is visible to the +signer. OpenSSH uses this binding via signed data to implement per-key +restrictions in ssh-agent. + +A server may advertise this method using the SSH2_MSG_EXT_INFO +mechanism (RFC8308), with the following message: + + string "publickey-hostbound@openssh.com" + string "0" (version) + +Clients should prefer host-bound authentication when advertised by +server. + +4. SFTP protocol changes + +4.1. sftp: Reversal of arguments to SSH_FXP_SYMLINK When OpenSSH's sftp-server was implemented, the order of the arguments to the SSH_FXP_SYMLINK method was inadvertently reversed. Unfortunately, @@ -357,7 +389,7 @@ SSH_FXP_SYMLINK as follows: string targetpath string linkpath -3.2. sftp: Server extension announcement in SSH_FXP_VERSION +4.2. sftp: Server extension announcement in SSH_FXP_VERSION OpenSSH's sftp-server lists the extensions it supports using the standard extension announcement mechanism in the SSH_FXP_VERSION server @@ -378,7 +410,7 @@ ever changed in an incompatible way. The server MAY advertise the same extension with multiple versions (though this is unlikely). Clients MUST check the version number before attempting to use the extension. -3.3. sftp: Extension request "posix-rename@openssh.com" +4.3. sftp: Extension request "posix-rename@openssh.com" This operation provides a rename operation with POSIX semantics, which are different to those provided by the standard SSH_FXP_RENAME in @@ -395,7 +427,7 @@ rename(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -3.4. sftp: Extension requests "statvfs@openssh.com" and +4.4. sftp: Extension requests "statvfs@openssh.com" and "fstatvfs@openssh.com" These requests correspond to the statvfs and fstatvfs POSIX system @@ -436,7 +468,7 @@ The values of the f_flag bitmask are as follows: Both the "statvfs@openssh.com" and "fstatvfs@openssh.com" extensions are advertised in the SSH_FXP_VERSION hello with version "2". -3.5. sftp: Extension request "hardlink@openssh.com" +4.5. sftp: Extension request "hardlink@openssh.com" This request is for creating a hard link to a regular file. This request is implemented as a SSH_FXP_EXTENDED request with the @@ -452,7 +484,7 @@ link(oldpath, newpath) and will respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -3.6. sftp: Extension request "fsync@openssh.com" +4.6. sftp: Extension request "fsync@openssh.com" This request asks the server to call fsync(2) on an open file handle. @@ -466,7 +498,7 @@ respond with a SSH_FXP_STATUS message. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -3.7. sftp: Extension request "lsetstat@openssh.com" +4.7. sftp: Extension request "lsetstat@openssh.com" This request is like the "setstat" command, but sets file attributes on symlinks. It is implemented as a SSH_FXP_EXTENDED request with the @@ -482,7 +514,7 @@ See the "setstat" command for more details. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -3.8. sftp: Extension request "limits@openssh.com" +4.8. sftp: Extension request "limits@openssh.com" This request is used to determine various limits the server might impose. Clients should not attempt to exceed these limits as the server might sever @@ -525,9 +557,28 @@ limits. This extension is advertised in the SSH_FXP_VERSION hello with version "1". -4. Miscellaneous changes +4.9. sftp: Extension request "expand-path@openssh.com" + +This request supports canonicalisation of relative paths and +those that need tilde-expansion, i.e. "~", "~/..." and "~user/..." +These paths are expanded using shell-like rules and the resultant +path is canonicalised similarly to SSH2_FXP_REALPATH. + +It is implemented as a SSH_FXP_EXTENDED request with the following +format: + + uint32 id + string "expand-path@openssh.com" + string path + +Its reply is the same format as that of SSH2_FXP_REALPATH. + +This extension is advertised in the SSH_FXP_VERSION hello with version +"1". + +5. Miscellaneous changes -4.1 Public key format +5.1 Public key format OpenSSH public keys, as generated by ssh-keygen(1) and appearing in authorized_keys files, are formatted as a single line of text consisting @@ -538,22 +589,27 @@ section 6.6 for RSA and DSA keys, RFC5656 section 3.1 for ECDSA keys and the "New public key formats" section of PROTOCOL.certkeys for the OpenSSH certificate formats. -4.2 Private key format +5.2 Private key format OpenSSH private keys, as generated by ssh-keygen(1) use the format described in PROTOCOL.key by default. As a legacy option, PEM format (RFC7468) private keys are also supported for RSA, DSA and ECDSA keys and were the default format before OpenSSH 7.8. -4.3 KRL format +5.3 KRL format OpenSSH supports a compact format for Key Revocation Lists (KRLs). This format is described in the PROTOCOL.krl file. -4.4 Connection multiplexing +5.4 Connection multiplexing OpenSSH's connection multiplexing uses messages as described in PROTOCOL.mux over a Unix domain socket for communications between a master instance and later clients. -$OpenBSD: PROTOCOL,v 1.41 2021/02/18 02:49:35 djm Exp $ +5.5. Agent protocol extensions + +OpenSSH extends the usual agent protocol. These changes are documented +in the PROTOCOL.agent file. + +$OpenBSD: PROTOCOL,v 1.43 2021/12/19 22:15:42 djm Exp $ diff --git a/PROTOCOL.agent b/PROTOCOL.agent index ed47146a30e..67302c34495 100644 --- a/PROTOCOL.agent +++ b/PROTOCOL.agent @@ -1,5 +1,84 @@ -This file used to contain a description of the SSH agent protocol -implemented by OpenSSH. It has since been superseded by +The SSH agent protocol is described in https://tools.ietf.org/html/draft-miller-ssh-agent-04 -$OpenBSD: PROTOCOL.agent,v 1.14 2020/10/06 07:12:04 dtucker Exp $ +This file document's OpenSSH's extensions to the agent protocol. + +1. session-bind@openssh.com extension + +This extension allows a ssh client to bind an agent connection to a +particular SSH session identifier as derived from the initial key +exchange (as per RFC4253 section 7.2) and the host key used for that +exchange. This binding is verifiable at the agent by including the +initial KEX signature made by the host key. + +The message format is: + + byte SSH_AGENTC_EXTENSION (0x1b) + string session-bind@openssh.com + string hostkey + string session identifier + string signature + bool is_forwarding + +Where 'hostkey' is the encoded server host public key, 'session +identifier' is the exchange hash derived from the initial key +exchange, 'signature' is the server's signature of the session +identifier using the private hostkey, as sent in the final +SSH2_MSG_KEXDH_REPLY/SSH2_MSG_KEXECDH_REPLY message of the initial key +exchange. 'is_forwarding' is a flag indicating whether this connection +should be bound for user authentication or forwarding. + +When an agent received this message, it will verify the signature and +check the consistency of its contents, including refusing to accept +a duplicate session identifier, or any attempt to bind a connection +previously bound for authentication. It will then then record the +binding for the life of the connection for use later in testing per-key +destination constraints. + +2. restrict-destination-v00@openssh.com key constraint extension + +The key constraint extension supports destination- and forwarding path- +restricted keys. It may be attached as a constraint when keys or +smartcard keys are added to an agent. + + byte SSH_AGENT_CONSTRAIN_EXTENSION (0xff) + string restrict-destination-v00@openssh.com + constraint[] constraints + +Where a constraint consists of: + + string from_username (must be empty) + string from_hostname + keyspec[] from_hostkeys + string to_username + string to_hostname + keyspec[] to_hostkeys + +An a keyspec consists of: + + string keyblob + bool is_ca + +When receiving this message, the agent will ensure that the +'from_username' field is empty, and that 'to_hostname' and 'to_hostkeys' +have been supplied (empty 'from_hostname' and 'from_hostkeys' are valid +and signify the initial hop from the host running ssh-agent). The agent +will then record the constraint against the key. + +Subsequent operations on this key including add/remove/request +identities and, in particular, signature requests will check the key +constraints against the session-bind@openssh.com bindings recorded for +the agent connection over which they were received. + +3. SSH_AGENT_CONSTRAIN_MAXSIGN key constraint + +This key constraint allows communication to an agent of the maximum +number of signatures that may be made with an XMSS key. The format of +the constraint is: + + byte SSH_AGENT_CONSTRAIN_MAXSIGN (0x03) + uint32 max_signatures + +This option is only valid for XMSS keys. + +$OpenBSD: PROTOCOL.agent,v 1.16 2022/01/01 01:55:30 jsg Exp $ diff --git a/PROTOCOL.certkeys b/PROTOCOL.certkeys index 1fce87006f1..68622e60743 100644 --- a/PROTOCOL.certkeys +++ b/PROTOCOL.certkeys @@ -45,7 +45,7 @@ SHA-2 signatures (SHA-256 and SHA-512 respectively): rsa-sha2-512-cert-v01@openssh.com These RSA/SHA-2 types should not appear in keys at rest or transmitted -on their wire, but do appear in a SSH_MSG_KEXINIT's host-key algorithms +on the wire, but do appear in a SSH_MSG_KEXINIT's host-key algorithms field or in the "public key algorithm name" field of a "publickey" SSH_USERAUTH_REQUEST to indicate that the signature will use the specified algorithm. @@ -159,12 +159,11 @@ p, q, g, y are the DSA parameters as described in FIPS-186-2. curve and public key are respectively the ECDSA "[identifier]" and "Q" defined in section 3.1 of RFC5656. -pk is the encoded Ed25519 public key as defined by -draft-josefsson-eddsa-ed25519-03. +pk is the encoded Ed25519 public key as defined by RFC8032. serial is an optional certificate serial number set by the CA to provide an abbreviated way to refer to certificates from that CA. -If a CA does not wish to number its certificates it must set this +If a CA does not wish to number its certificates, it must set this field to zero. type specifies whether this certificate is for identification of a user @@ -217,13 +216,13 @@ signature is computed over all preceding fields from the initial string up to, and including the signature key. Signatures are computed and encoded according to the rules defined for the CA's public key algorithm (RFC4253 section 6.6 for ssh-rsa and ssh-dss, RFC5656 for the ECDSA -types), and draft-josefsson-eddsa-ed25519-03 for Ed25519. +types, and RFC8032 for Ed25519). Critical options ---------------- The critical options section of the certificate specifies zero or more -options on the certificates validity. The format of this field +options on the certificate's validity. The format of this field is a sequence of zero or more tuples: string name @@ -234,7 +233,7 @@ sequence. Each named option may only appear once in a certificate. The name field identifies the option and the data field encodes option-specific information (see below). All options are -"critical", if an implementation does not recognise a option +"critical"; if an implementation does not recognise a option, then the validating party should refuse to accept the certificate. Custom options should append the originating author or organisation's @@ -256,10 +255,18 @@ source-address string Comma-separated list of source addresses for authentication. Addresses are specified in CIDR format (nn.nn.nn.nn/nn or hhhh::hhhh/nn). - If this option is not present then + If this option is not present, then certificates may be presented from any source address. +verify-required empty Flag indicating that signatures made + with this certificate must assert FIDO + user verification (e.g. PIN or + biometric). This option only makes sense + for the U2F/FIDO security key types that + support this feature in their signature + formats. + Extensions ---------- @@ -280,11 +287,11 @@ their data fields are: Name Format Description ----------------------------------------------------------------------------- -no-presence-required empty Flag indicating that signatures made +no-touch-required empty Flag indicating that signatures made with this certificate need not assert - user presence. This option only make - sense for the U2F/FIDO security key - types that support this feature in + FIDO user presence. This option only + makes sense for the U2F/FIDO security + key types that support this feature in their signature formats. permit-X11-forwarding empty Flag indicating that X11 forwarding @@ -298,7 +305,7 @@ permit-agent-forwarding empty Flag indicating that agent forwarding permit-port-forwarding empty Flag indicating that port-forwarding should be allowed. If this option is - not present then no port forwarding will + not present, then no port forwarding will be allowed. permit-pty empty Flag indicating that PTY allocation @@ -311,4 +318,4 @@ permit-user-rc empty Flag indicating that execution of of this script will not be permitted if this option is not present. -$OpenBSD: PROTOCOL.certkeys,v 1.17 2019/11/25 00:57:51 djm Exp $ +$OpenBSD: PROTOCOL.certkeys,v 1.19 2021/06/05 13:47:00 naddy Exp $ diff --git a/PROTOCOL.key b/PROTOCOL.key index 959bd7aeec2..38df268b653 100644 --- a/PROTOCOL.key +++ b/PROTOCOL.key @@ -35,9 +35,9 @@ of the cipher block size. uint32 checkint uint32 checkint - string privatekey1 + byte[] privatekey1 string comment1 - string privatekey2 + byte[] privatekey2 string comment2 ... string privatekeyN @@ -48,6 +48,9 @@ of the cipher block size. ... char padlen % 255 +where each private key is encoded using the same rules as used for +SSH agent. + Before the key is encrypted, a random integer is assigned to both checkint fields so successful decryption can be quickly checked by verifying that both checkint fields @@ -65,4 +68,4 @@ For unencrypted keys the cipher "none" and the KDF "none" are used with empty passphrases. The options if the KDF "none" are the empty string. -$OpenBSD: PROTOCOL.key,v 1.1 2013/12/06 13:34:54 markus Exp $ +$OpenBSD: PROTOCOL.key,v 1.2 2021/05/07 02:29:40 djm Exp $ diff --git a/PROTOCOL.mux b/PROTOCOL.mux index 5fc4c06b966..5a3dd5fe04d 100644 --- a/PROTOCOL.mux +++ b/PROTOCOL.mux @@ -15,7 +15,7 @@ Most messages from the client to the server contain a "request id" field. This field is returned in replies as "client request id" to facilitate matching of responses to requests. -Many muliplexing (mux) client requests yield immediate responses from +Many multiplexing (mux) client requests yield immediate responses from the mux process; requesting a forwarding, performing an alive check or requesting the master terminate itself fall in to this category. @@ -216,7 +216,7 @@ MUX_S_FAILURE. 9. Requesting proxy mode -A client may request that the the control connection be placed in proxy +A client may request that the control connection be placed in proxy mode: uint32 MUX_C_PROXY @@ -295,4 +295,4 @@ XXX session inspection via master XXX signals via mux request XXX list active connections via mux -$OpenBSD: PROTOCOL.mux,v 1.12 2020/03/13 03:17:07 djm Exp $ +$OpenBSD: PROTOCOL.mux,v 1.13 2022/01/01 01:55:30 jsg Exp $ diff --git a/README b/README index 99fe347738c..a088ff8dca3 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -See https://www.openssh.com/releasenotes.html#8.6p1 for the release notes. +See https://www.openssh.com/releasenotes.html#8.9p1 for the release notes. Please read https://www.openssh.com/report.html for bug reporting instructions and note that we do not use Github for bug reporting or diff --git a/README.md b/README.md index e3a0746c1ea..d6839cedf42 100644 --- a/README.md +++ b/README.md @@ -30,14 +30,19 @@ Both liboqs and this fork are part of the **Open Quantum Safe (OQS) project**, w ## Status -This fork is currently based on OpenSSH version **8.4** (Git tag V_8_4_P1); release notes can be found [here](RELEASE.md). **IT IS AT AN EXPERIMENTAL STAGE**, and has not received the same level of auditing and analysis that OpenSSH has received. See the [Limitations and Security](#limitations-and-security) section below for more information. +This fork is currently based on OpenSSH version **8.9** (Git tag V_8_9_P1); release notes can be found [here](RELEASE.md). **IT IS AT AN EXPERIMENTAL STAGE**, and has not received the same level of auditing and analysis that OpenSSH has received. See the [Limitations and Security](#limitations-and-security) section below for more information. **WE DO NOT RECOMMEND RELYING ON THIS FORK TO PROTECT SENSITIVE DATA.** liboqs is provided "as is", without warranty of any kind. See [LICENSE.txt](https://github.com/open-quantum-safe/liboqs/blob/main/LICENSE.txt) for the full disclaimer. +Portable OpenSSH is built using autoconf and make. It requires a working C compiler, standard library and headers. + +``libcrypto`` from either [LibreSSL](https://www.libressl.org/) or [OpenSSL](https://www.openssl.org) may also be used, but OpenSSH may be built without it supporting a subset of crypto algorithms. [zlib](https://www.zlib.net/) is optional; without it transport compression is not supported. +FIDO security token support needs [libfido2](https://github.com/Yubico/libfido2) and its dependencies. Also, certain platforms and build-time options may require additional dependencies; see README.platform for details. + This fork implements the [draft-kampanakis-curdle-pq-ssh-00](https://datatracker.ietf.org/doc/draft-kampanakis-curdle-pq-ssh/) IETF draft for hybrid key exchange algorithms. ### Limitations and security @@ -134,6 +139,8 @@ Building liboqs requires your system to have OpenSSL 1.1.1 or higher already ins ### Step 2: Build the fork +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. + Run the following: ``` diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000000..ba436c4f176 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,5 @@ +# Reporting OpenSSH Security Issues + +To report security issues in OpenSSH, please refer to our website +[OpenSSH Security](https://www.openssh.com/security.html). + diff --git a/addr.c b/addr.c index ba0fad4e9eb..1ad10ae0fdf 100644 --- a/addr.c +++ b/addr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: addr.c,v 1.1 2021/01/09 11:58:50 dtucker Exp $ */ +/* $OpenBSD: addr.c,v 1.4 2021/10/22 10:51:57 dtucker Exp $ */ /* * Copyright (c) 2004-2008 Damien Miller @@ -244,7 +244,7 @@ addr_cmp(const struct xaddr *a, const struct xaddr *b) if (a->v4.s_addr == b->v4.s_addr) return 0; return (ntohl(a->v4.s_addr) > ntohl(b->v4.s_addr) ? 1 : -1); - case AF_INET6:; + case AF_INET6: /* * Do this a byte at a time to avoid the above issue and * any endian problems @@ -268,7 +268,7 @@ addr_is_all0s(const struct xaddr *a) switch (a->af) { case AF_INET: return (a->v4.s_addr == 0 ? 0 : -1); - case AF_INET6:; + case AF_INET6: for (i = 0; i < 4; i++) if (a->addr32[i] != 0) return -1; @@ -281,7 +281,7 @@ addr_is_all0s(const struct xaddr *a) /* * Test whether host portion of address 'a', as determined by 'masklen' * is all zeros. - * Returns 0 on if host portion of address is all-zeros, + * Returns 0 if host portion of address is all-zeros, * -1 if not all zeros or on failure. */ int @@ -298,7 +298,7 @@ addr_host_is_all0s(const struct xaddr *a, u_int masklen) } /* - * Parse string address 'p' into 'n' + * Parse string address 'p' into 'n'. * Returns 0 on success, -1 on failure. */ int @@ -312,8 +312,13 @@ addr_pton(const char *p, struct xaddr *n) if (p == NULL || getaddrinfo(p, NULL, &hints, &ai) != 0) return -1; - if (ai == NULL || ai->ai_addr == NULL) + if (ai == NULL) + return -1; + + if (ai->ai_addr == NULL) { + freeaddrinfo(ai); return -1; + } if (n != NULL && addr_sa_to_xaddr(ai->ai_addr, ai->ai_addrlen, n) == -1) { @@ -336,12 +341,19 @@ addr_sa_pton(const char *h, const char *s, struct sockaddr *sa, socklen_t slen) if (h == NULL || getaddrinfo(h, s, &hints, &ai) != 0) return -1; - if (ai == NULL || ai->ai_addr == NULL) + if (ai == NULL) return -1; + if (ai->ai_addr == NULL) { + freeaddrinfo(ai); + return -1; + } + if (sa != NULL) { - if (slen < ai->ai_addrlen) + if (slen < ai->ai_addrlen) { + freeaddrinfo(ai); return -1; + } memcpy(sa, &ai->ai_addr, ai->ai_addrlen); } @@ -357,7 +369,7 @@ addr_ntop(const struct xaddr *n, char *p, size_t len) if (addr_xaddr_to_sa(n, _SA(&ss), &slen, 0) == -1) return -1; - if (n == NULL || p == NULL || len == 0) + if (p == NULL || len == 0) return -1; if (getnameinfo(_SA(&ss), slen, p, len, NULL, 0, NI_NUMERICHOST) == -1) diff --git a/atomicio.c b/atomicio.c index e00c9f0d4e2..765073357f6 100644 --- a/atomicio.c +++ b/atomicio.c @@ -28,7 +28,6 @@ #include "includes.h" -#include #include #include diff --git a/auth-options.c b/auth-options.c index f68c629dd2c..7cb2a640a15 100644 --- a/auth-options.c +++ b/auth-options.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.c,v 1.95 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: auth-options.c,v 1.98 2022/02/08 08:59:12 dtucker Exp $ */ /* * Copyright (c) 2018 Damien Miller * @@ -282,7 +282,7 @@ handle_permit(const char **optsp, int allow_bare_port, } cp = tmp; /* validate syntax before recording it. */ - host = hpdelim(&cp); + host = hpdelim2(&cp, NULL); if (host == NULL || strlen(host) >= NI_MAXHOST) { free(tmp); free(opt); @@ -324,6 +324,7 @@ sshauthopt_parse(const char *opts, const char **errstrp) struct sshauthopt *ret = NULL; const char *errstr = "unknown error"; uint64_t valid_before; + size_t i, l; if (errstrp != NULL) *errstrp = NULL; @@ -397,7 +398,7 @@ sshauthopt_parse(const char *opts, const char **errstrp) valid_before < ret->valid_before) ret->valid_before = valid_before; } else if (opt_match(&opts, "environment")) { - if (ret->nenv > INT_MAX) { + if (ret->nenv > SSH_AUTHOPT_ENV_MAX) { errstr = "too many environment strings"; goto fail; } @@ -409,25 +410,41 @@ sshauthopt_parse(const char *opts, const char **errstrp) errstr = "invalid environment string"; goto fail; } - if ((cp = strdup(opt)) == NULL) + if ((cp = strdup(opt)) == NULL) { + free(opt); goto alloc_fail; - cp[tmp - opt] = '\0'; /* truncate at '=' */ + } + l = (size_t)(tmp - opt); + cp[l] = '\0'; /* truncate at '=' */ if (!valid_env_name(cp)) { free(cp); free(opt); errstr = "invalid environment string"; goto fail; } + /* Check for duplicates; XXX O(n*log(n)) */ + for (i = 0; i < ret->nenv; i++) { + if (strncmp(ret->env[i], cp, l) == 0 && + ret->env[i][l] == '=') + break; + } free(cp); - /* Append it. */ - oarray = ret->env; - if ((ret->env = recallocarray(ret->env, ret->nenv, - ret->nenv + 1, sizeof(*ret->env))) == NULL) { - free(opt); - ret->env = oarray; /* put it back for cleanup */ - goto alloc_fail; + /* First match wins */ + if (i >= ret->nenv) { + /* Append it. */ + oarray = ret->env; + if ((ret->env = recallocarray(ret->env, + ret->nenv, ret->nenv + 1, + sizeof(*ret->env))) == NULL) { + free(opt); + /* put it back for cleanup */ + ret->env = oarray; + goto alloc_fail; + } + ret->env[ret->nenv++] = opt; + opt = NULL; /* transferred */ } - ret->env[ret->nenv++] = opt; + free(opt); } else if (opt_match(&opts, "permitopen")) { if (handle_permit(&opts, 0, &ret->permitopen, &ret->npermitopen, &errstr) != 0) diff --git a/auth-options.h b/auth-options.h index 118a32087a8..6e29b727c3d 100644 --- a/auth-options.h +++ b/auth-options.h @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.h,v 1.30 2020/08/27 01:07:09 djm Exp $ */ +/* $OpenBSD: auth-options.h,v 1.31 2021/07/23 03:57:20 djm Exp $ */ /* * Copyright (c) 2018 Damien Miller @@ -23,7 +23,10 @@ struct passwd; struct sshkey; /* Maximum number of permitopen/permitlisten directives to accept */ -#define SSH_AUTHOPT_PERMIT_MAX 4096 +#define SSH_AUTHOPT_PERMIT_MAX 4096 + +/* Maximum number of environment directives to accept */ +#define SSH_AUTHOPT_ENV_MAX 1024 /* * sshauthopt represents key options parsed from authorized_keys or diff --git a/auth-pam.c b/auth-pam.c index 0b4a28abc79..29034e40d65 100644 --- a/auth-pam.c +++ b/auth-pam.c @@ -886,6 +886,7 @@ sshpam_query(void *ctx, char **name, char **info, case PAM_AUTH_ERR: debug3("PAM: %s", pam_strerror(sshpam_handle, type)); if (**prompts != NULL && strlen(**prompts) != 0) { + free(*info); *info = **prompts; **prompts = NULL; *num = 0; @@ -1392,6 +1393,5 @@ sshpam_set_maxtries_reached(int reached) sshpam_maxtries_reached = 1; options.password_authentication = 0; options.kbd_interactive_authentication = 0; - options.challenge_response_authentication = 0; } #endif /* USE_PAM */ diff --git a/auth-rhosts.c b/auth-rhosts.c index 0bc4d424c78..cac5cd84d86 100644 --- a/auth-rhosts.c +++ b/auth-rhosts.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-rhosts.c,v 1.53 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: auth-rhosts.c,v 1.55 2022/02/23 11:15:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -34,6 +34,7 @@ #include "pathnames.h" #include "log.h" #include "misc.h" +#include "xmalloc.h" #include "sshbuf.h" #include "sshkey.h" #include "servconf.h" @@ -189,12 +190,13 @@ int auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, const char *ipaddr) { - char buf[1024]; + char *path = NULL; struct stat st; - static const char *rhosts_files[] = {".shosts", ".rhosts", NULL}; + static const char * const rhosts_files[] = {".shosts", ".rhosts", NULL}; u_int rhosts_file_index; + int r; - debug2("auth_rhosts2: clientuser %s hostname %s ipaddr %s", + debug2_f("clientuser %s hostname %s ipaddr %s", client_user, hostname, ipaddr); /* Switch to the user's uid. */ @@ -208,9 +210,11 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, for (rhosts_file_index = 0; rhosts_files[rhosts_file_index]; rhosts_file_index++) { /* Check users .rhosts or .shosts. */ - snprintf(buf, sizeof buf, "%.500s/%.100s", - pw->pw_dir, rhosts_files[rhosts_file_index]); - if (stat(buf, &st) >= 0) + xasprintf(&path, "%s/%s", + pw->pw_dir, rhosts_files[rhosts_file_index]); + r = stat(path, &st); + free(path); + if (r >= 0) break; } /* Switch back to privileged uid. */ @@ -275,10 +279,12 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, for (rhosts_file_index = 0; rhosts_files[rhosts_file_index]; rhosts_file_index++) { /* Check users .rhosts or .shosts. */ - snprintf(buf, sizeof buf, "%.500s/%.100s", - pw->pw_dir, rhosts_files[rhosts_file_index]); - if (stat(buf, &st) == -1) + xasprintf(&path, "%s/%s", + pw->pw_dir, rhosts_files[rhosts_file_index]); + if (stat(path, &st) == -1) { + free(path); continue; + } /* * Make sure that the file is either owned by the user or by @@ -289,9 +295,10 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, if (options.strict_modes && ((st.st_uid != 0 && st.st_uid != pw->pw_uid) || (st.st_mode & 022) != 0)) { - logit("Rhosts authentication refused for %.100s: bad modes for %.200s", - pw->pw_name, buf); - auth_debug_add("Bad file modes for %.200s", buf); + logit("Rhosts authentication refused for %.100s: " + "bad modes for %.200s", pw->pw_name, path); + auth_debug_add("Bad file modes for %.200s", path); + free(path); continue; } /* @@ -303,10 +310,11 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, strcmp(rhosts_files[rhosts_file_index], ".shosts") != 0)) { auth_debug_add("Server has been configured to " "ignore %.100s.", rhosts_files[rhosts_file_index]); + free(path); continue; } /* Check if authentication is permitted by the file. */ - if (check_rhosts_file(buf, hostname, ipaddr, + if (check_rhosts_file(path, hostname, ipaddr, client_user, pw->pw_name)) { auth_debug_add("Accepted by %.100s.", rhosts_files[rhosts_file_index]); @@ -315,8 +323,10 @@ auth_rhosts2(struct passwd *pw, const char *client_user, const char *hostname, auth_debug_add("Accepted host %s ip %s client_user " "%s server_user %s", hostname, ipaddr, client_user, pw->pw_name); + free(path); return 1; } + free(path); } /* Restore the privileged uid. */ diff --git a/auth.c b/auth.c index b560eed14b1..560e8ecacde 100644 --- a/auth.c +++ b/auth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.c,v 1.152 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: auth.c,v 1.154 2022/02/23 11:17:10 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -352,27 +352,29 @@ auth_log(struct ssh *ssh, int authenticated, int partial, free(extra); -#ifdef CUSTOM_FAILED_LOGIN - if (authenticated == 0 && !authctxt->postponed && - (strcmp(method, "password") == 0 || - strncmp(method, "keyboard-interactive", 20) == 0 || - strcmp(method, "challenge-response") == 0)) - record_failed_login(ssh, authctxt->user, - auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); -# ifdef WITH_AIXAUTHENTICATE +#if defined(CUSTOM_FAILED_LOGIN) || defined(SSH_AUDIT_EVENTS) + if (authenticated == 0 && !(authctxt->postponed || partial)) { + /* Log failed login attempt */ +# ifdef CUSTOM_FAILED_LOGIN + if (strcmp(method, "password") == 0 || + strncmp(method, "keyboard-interactive", 20) == 0 || + strcmp(method, "challenge-response") == 0) + record_failed_login(ssh, authctxt->user, + auth_get_canonical_hostname(ssh, options.use_dns), "ssh"); +# endif +# ifdef SSH_AUDIT_EVENTS + audit_event(ssh, audit_classify_auth(method)); +# endif + } +#endif +#if defined(CUSTOM_FAILED_LOGIN) && defined(WITH_AIXAUTHENTICATE) if (authenticated) sys_auth_record_login(authctxt->user, auth_get_canonical_hostname(ssh, options.use_dns), "ssh", loginmsg); -# endif -#endif -#ifdef SSH_AUDIT_EVENTS - if (authenticated == 0 && !authctxt->postponed) - audit_event(ssh, audit_classify_auth(method)); #endif } - void auth_maxtries_exceeded(struct ssh *ssh) { @@ -707,12 +709,21 @@ auth_debug_reset(void) struct passwd * fakepw(void) { + static int done = 0; static struct passwd fake; + const char hashchars[] = "./ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz0123456789"; /* from bcrypt.c */ + char *cp; + + if (done) + return (&fake); memset(&fake, 0, sizeof(fake)); fake.pw_name = "NOUSER"; - fake.pw_passwd = - "$2a$06$r3.juUaHZDlIbQaO2dS9FuYxL1W9M81R1Tc92PoSNmzvpEqLkLGrK"; + fake.pw_passwd = xstrdup("$2a$10$" + "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); + for (cp = fake.pw_passwd + 7; *cp != '\0'; cp++) + *cp = hashchars[arc4random_uniform(sizeof(hashchars) - 1)]; #ifdef HAVE_STRUCT_PASSWD_PW_GECOS fake.pw_gecos = "NOUSER"; #endif @@ -723,6 +734,7 @@ fakepw(void) #endif fake.pw_dir = "/nonexist"; fake.pw_shell = "/nonexist"; + done = 1; return (&fake); } @@ -732,9 +744,7 @@ fakepw(void) * be freed. NB. this will usually trigger a DNS query the first time it is * called. * This function does additional checks on the hostname to mitigate some - * attacks on legacy rhosts-style authentication. - * XXX is RhostsRSAAuthentication vulnerable to these? - * XXX Can we remove these checks? (or if not, remove RhostsRSAAuthentication?) + * attacks on based on conflation of hostnames and IP addresses. */ static char * diff --git a/auth.h b/auth.h index 43c7d3d4041..a65d8fd02d3 100644 --- a/auth.h +++ b/auth.h @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.h,v 1.101 2020/12/22 00:12:22 djm Exp $ */ +/* $OpenBSD: auth.h,v 1.102 2021/12/19 22:12:07 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -104,7 +104,8 @@ struct Authctxt { struct Authmethod { char *name; - int (*userauth)(struct ssh *); + char *synonym; + int (*userauth)(struct ssh *, const char *); int *enabled; }; diff --git a/auth2-gss.c b/auth2-gss.c index 60e36961ce0..2062609d930 100644 --- a/auth2-gss.c +++ b/auth2-gss.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-gss.c,v 1.32 2021/01/27 10:15:08 djm Exp $ */ +/* $OpenBSD: auth2-gss.c,v 1.33 2021/12/19 22:12:07 djm Exp $ */ /* * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. @@ -60,7 +60,7 @@ static int input_gssapi_errtok(int, u_int32_t, struct ssh *); * how to check local user kuserok and the like) */ static int -userauth_gssapi(struct ssh *ssh) +userauth_gssapi(struct ssh *ssh, const char *method) { Authctxt *authctxt = ssh->authctxt; gss_OID_desc goid = {0, NULL}; @@ -329,6 +329,7 @@ input_gssapi_mic(int type, u_int32_t plen, struct ssh *ssh) Authmethod method_gssapi = { "gssapi-with-mic", + NULL, userauth_gssapi, &options.gss_authentication }; diff --git a/auth2-hostbased.c b/auth2-hostbased.c index 002e7e4ee21..36b9d2f5b0e 100644 --- a/auth2-hostbased.c +++ b/auth2-hostbased.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-hostbased.c,v 1.46 2021/01/27 10:05:28 djm Exp $ */ +/* $OpenBSD: auth2-hostbased.c,v 1.49 2022/01/06 22:01:14 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -57,7 +57,7 @@ extern ServerOptions options; static int -userauth_hostbased(struct ssh *ssh) +userauth_hostbased(struct ssh *ssh, const char *method) { Authctxt *authctxt = ssh->authctxt; struct sshbuf *b; @@ -108,8 +108,8 @@ userauth_hostbased(struct ssh *ssh) goto done; } if (match_pattern_list(pkalg, options.hostbased_accepted_algos, 0) != 1) { - logit_f("key type %s not in HostbasedAcceptedAlgorithms", - sshkey_type(key)); + logit_f("signature algorithm %s not in " + "HostbasedAcceptedAlgorithms", pkalg); goto done; } if ((r = sshkey_check_cert_sigtype(key, @@ -132,7 +132,7 @@ userauth_hostbased(struct ssh *ssh) (r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || (r = sshbuf_put_cstring(b, authctxt->user)) != 0 || (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || - (r = sshbuf_put_cstring(b, "hostbased")) != 0 || + (r = sshbuf_put_cstring(b, method)) != 0 || (r = sshbuf_put_string(b, pkalg, alen)) != 0 || (r = sshbuf_put_string(b, pkblob, blen)) != 0 || (r = sshbuf_put_cstring(b, chost)) != 0 || @@ -213,7 +213,7 @@ hostbased_key_allowed(struct ssh *ssh, struct passwd *pw, debug2_f("access allowed by auth_rhosts2"); if (sshkey_is_cert(key) && - sshkey_cert_check_authority(key, 1, 0, 0, lookup, &reason)) { + sshkey_cert_check_authority_now(key, 1, 0, 0, lookup, &reason)) { error("%s", reason); auth_debug_add("%s", reason); return 0; @@ -255,6 +255,7 @@ hostbased_key_allowed(struct ssh *ssh, struct passwd *pw, Authmethod method_hostbased = { "hostbased", + NULL, userauth_hostbased, &options.hostbased_authentication }; diff --git a/auth2-kbdint.c b/auth2-kbdint.c index 111f2d29fcf..ae7eca3b87f 100644 --- a/auth2-kbdint.c +++ b/auth2-kbdint.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-kbdint.c,v 1.12 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: auth2-kbdint.c,v 1.14 2021/12/19 22:12:07 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -44,7 +44,7 @@ extern ServerOptions options; static int -userauth_kbdint(struct ssh *ssh) +userauth_kbdint(struct ssh *ssh, const char *method) { int r, authenticated = 0; char *lang, *devs; @@ -56,7 +56,7 @@ userauth_kbdint(struct ssh *ssh) debug("keyboard-interactive devs %s", devs); - if (options.challenge_response_authentication) + if (options.kbd_interactive_authentication) authenticated = auth2_challenge(ssh, devs); free(devs); @@ -66,6 +66,7 @@ userauth_kbdint(struct ssh *ssh) Authmethod method_kbdint = { "keyboard-interactive", + NULL, userauth_kbdint, &options.kbd_interactive_authentication }; diff --git a/auth2-none.c b/auth2-none.c index 02d6e341ca4..d9f97223c92 100644 --- a/auth2-none.c +++ b/auth2-none.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-none.c,v 1.23 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: auth2-none.c,v 1.24 2021/12/19 22:12:07 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -59,7 +59,7 @@ extern ServerOptions options; static int none_enabled = 1; static int -userauth_none(struct ssh *ssh) +userauth_none(struct ssh *ssh, const char *method) { int r; @@ -73,6 +73,7 @@ userauth_none(struct ssh *ssh) Authmethod method_none = { "none", + NULL, userauth_none, &none_enabled }; diff --git a/auth2-passwd.c b/auth2-passwd.c index be4b8606a6c..f8a6dbc1939 100644 --- a/auth2-passwd.c +++ b/auth2-passwd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-passwd.c,v 1.19 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: auth2-passwd.c,v 1.20 2021/12/19 22:12:07 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -49,7 +49,7 @@ extern ServerOptions options; static int -userauth_passwd(struct ssh *ssh) +userauth_passwd(struct ssh *ssh, const char *method) { char *password; int authenticated = 0, r; @@ -72,6 +72,7 @@ userauth_passwd(struct ssh *ssh) Authmethod method_passwd = { "password", + NULL, userauth_passwd, &options.password_authentication }; diff --git a/auth2-pubkey.c b/auth2-pubkey.c index 721c1d9bd75..9c2298fc887 100644 --- a/auth2-pubkey.c +++ b/auth2-pubkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-pubkey.c,v 1.107 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: auth2-pubkey.c,v 1.112 2021/12/19 22:12:30 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -67,6 +67,7 @@ #include "authfile.h" #include "match.h" #include "ssherr.h" +#include "kex.h" #include "channels.h" /* XXX for session.h */ #include "session.h" /* XXX for child_set_env(); refactor? */ #include "sk-api.h" @@ -86,24 +87,39 @@ format_key(const struct sshkey *key) } static int -userauth_pubkey(struct ssh *ssh) +userauth_pubkey(struct ssh *ssh, const char *method) { Authctxt *authctxt = ssh->authctxt; struct passwd *pw = authctxt->pw; struct sshbuf *b = NULL; - struct sshkey *key = NULL; + struct sshkey *key = NULL, *hostkey = NULL; char *pkalg = NULL, *userstyle = NULL, *key_s = NULL, *ca_s = NULL; u_char *pkblob = NULL, *sig = NULL, have_sig; size_t blen, slen; - int r, pktype; + int hostbound, r, pktype; int req_presence = 0, req_verify = 0, authenticated = 0; struct sshauthopt *authopts = NULL; struct sshkey_sig_details *sig_details = NULL; + hostbound = strcmp(method, "publickey-hostbound-v00@openssh.com") == 0; + if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 || (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 || (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0) - fatal_fr(r, "parse packet"); + fatal_fr(r, "parse %s packet", method); + + /* hostbound auth includes the hostkey offered at initial KEX */ + if (hostbound) { + if ((r = sshpkt_getb_froms(ssh, &b)) != 0 || + (r = sshkey_fromb(b, &hostkey)) != 0) + fatal_fr(r, "parse %s hostkey", method); + if (ssh->kex->initial_hostkey == NULL) + fatal_f("internal error: initial hostkey not recorded"); + if (!sshkey_equal(hostkey, ssh->kex->initial_hostkey)) + fatal_f("%s packet contained wrong host key", method); + sshbuf_free(b); + b = NULL; + } if (log_level_get() >= SYSLOG_LEVEL_DEBUG2) { char *keystring; @@ -166,7 +182,8 @@ userauth_pubkey(struct ssh *ssh) ca_s = format_key(key->cert->signature_key); if (have_sig) { - debug3_f("have %s signature for %s%s%s", pkalg, key_s, + debug3_f("%s have %s signature for %s%s%s", + method, pkalg, key_s, ca_s == NULL ? "" : " CA ", ca_s == NULL ? "" : ca_s); if ((r = sshpkt_get_string(ssh, &sig, &slen)) != 0 || (r = sshpkt_get_end(ssh)) != 0) @@ -192,11 +209,14 @@ userauth_pubkey(struct ssh *ssh) if ((r = sshbuf_put_u8(b, SSH2_MSG_USERAUTH_REQUEST)) != 0 || (r = sshbuf_put_cstring(b, userstyle)) != 0 || (r = sshbuf_put_cstring(b, authctxt->service)) != 0 || - (r = sshbuf_put_cstring(b, "publickey")) != 0 || + (r = sshbuf_put_cstring(b, method)) != 0 || (r = sshbuf_put_u8(b, have_sig)) != 0 || (r = sshbuf_put_cstring(b, pkalg)) != 0 || (r = sshbuf_put_string(b, pkblob, blen)) != 0) - fatal_fr(r, "reconstruct packet"); + fatal_fr(r, "reconstruct %s packet", method); + if (hostbound && + (r = sshkey_puts(ssh->kex->initial_hostkey, b)) != 0) + fatal_fr(r, "reconstruct %s packet", method); #ifdef DEBUG_PK sshbuf_dump(b, stderr); #endif @@ -246,7 +266,7 @@ userauth_pubkey(struct ssh *ssh) } auth2_record_key(authctxt, authenticated, key); } else { - debug_f("test pkalg %s pkblob %s%s%s", pkalg, key_s, + debug_f("%s test pkalg %s pkblob %s%s%s", method, pkalg, key_s, ca_s == NULL ? "" : " CA ", ca_s == NULL ? "" : ca_s); if ((r = sshpkt_get_end(ssh)) != 0) @@ -285,6 +305,7 @@ userauth_pubkey(struct ssh *ssh) sshbuf_free(b); sshauthopt_free(authopts); sshkey_free(key); + sshkey_free(hostkey); free(userstyle); free(pkalg); free(pkblob); @@ -376,7 +397,7 @@ process_principals(struct ssh *ssh, FILE *f, const char *file, { char loc[256], *line = NULL, *cp, *ep; size_t linesize = 0; - u_long linenum = 0; + u_long linenum = 0, nonblank = 0; u_int found_principal = 0; if (authoptsp != NULL) @@ -397,10 +418,12 @@ process_principals(struct ssh *ssh, FILE *f, const char *file, if (!*cp || *cp == '\n') continue; + nonblank++; snprintf(loc, sizeof(loc), "%.200s:%lu", file, linenum); if (check_principals_line(ssh, cp, cert, loc, authoptsp) == 0) found_principal = 1; } + debug2_f("%s: processed %lu/%lu lines", file, nonblank, linenum); free(line); return found_principal; } @@ -475,7 +498,8 @@ match_principals_command(struct ssh *ssh, struct passwd *user_pw, } /* Turn the command into an argument vector */ - if (argv_split(options.authorized_principals_command, &ac, &av) != 0) { + if (argv_split(options.authorized_principals_command, + &ac, &av, 0) != 0) { error("AuthorizedPrincipalsCommand \"%s\" contains " "invalid quotes", options.authorized_principals_command); goto out; @@ -673,7 +697,7 @@ check_authkey_line(struct ssh *ssh, struct passwd *pw, struct sshkey *key, reason = "Certificate does not contain an authorized principal"; goto fail_reason; } - if (sshkey_cert_check_authority(key, 0, 0, 0, + if (sshkey_cert_check_authority_now(key, 0, 0, 0, keyopts->cert_principals == NULL ? pw->pw_name : NULL, &reason) != 0) goto fail_reason; @@ -718,7 +742,7 @@ check_authkeys_file(struct ssh *ssh, struct passwd *pw, FILE *f, char *cp, *line = NULL, loc[256]; size_t linesize = 0; int found_key = 0; - u_long linenum = 0; + u_long linenum = 0, nonblank = 0; if (authoptsp != NULL) *authoptsp = NULL; @@ -734,11 +758,14 @@ check_authkeys_file(struct ssh *ssh, struct passwd *pw, FILE *f, skip_space(&cp); if (!*cp || *cp == '\n' || *cp == '#') continue; + + nonblank++; snprintf(loc, sizeof(loc), "%.200s:%lu", file, linenum); if (check_authkey_line(ssh, pw, key, cp, loc, authoptsp) == 0) found_key = 1; } free(line); + debug2_f("%s: processed %lu/%lu lines", file, nonblank, linenum); return found_key; } @@ -793,7 +820,7 @@ user_cert_trusted_ca(struct ssh *ssh, struct passwd *pw, struct sshkey *key, } if (use_authorized_principals && principals_opts == NULL) fatal_f("internal error: missing principals_opts"); - if (sshkey_cert_check_authority(key, 0, 1, 0, + if (sshkey_cert_check_authority_now(key, 0, 1, 0, use_authorized_principals ? NULL : pw->pw_name, &reason) != 0) goto fail_reason; @@ -926,7 +953,7 @@ user_key_command_allowed2(struct ssh *ssh, struct passwd *user_pw, } /* Turn the command into an argument vector */ - if (argv_split(options.authorized_keys_command, &ac, &av) != 0) { + if (argv_split(options.authorized_keys_command, &ac, &av, 0) != 0) { error("AuthorizedKeysCommand \"%s\" contains invalid quotes", options.authorized_keys_command); goto out; @@ -1061,6 +1088,7 @@ user_key_allowed(struct ssh *ssh, struct passwd *pw, struct sshkey *key, Authmethod method_pubkey = { "publickey", + "publickey-hostbound-v00@openssh.com", userauth_pubkey, &options.pubkey_authentication }; diff --git a/auth2.c b/auth2.c index 84d0ed16e7e..6c061934bf3 100644 --- a/auth2.c +++ b/auth2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2.c,v 1.161 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: auth2.c,v 1.164 2022/02/23 11:18:13 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -92,6 +92,7 @@ static int input_service_request(int, u_int32_t, struct ssh *); static int input_userauth_request(int, u_int32_t, struct ssh *); /* helper */ +static Authmethod *authmethod_byname(const char *); static Authmethod *authmethod_lookup(Authctxt *, const char *); static char *authmethods_get(Authctxt *authctxt); @@ -278,6 +279,8 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) if ((style = strchr(user, ':')) != NULL) *style++ = 0; + if (authctxt->attempt >= 1024) + auth_maxtries_exceeded(ssh); if (authctxt->attempt++ == 0) { /* setup auth context */ authctxt->pw = PRIVSEP(getpwnamallow(ssh, user)); @@ -286,6 +289,7 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) authctxt->valid = 1; debug2_f("setting up authctxt for %s", user); } else { + authctxt->valid = 0; /* Invalid user, fake password information */ authctxt->pw = fakepw(); #ifdef SSH_AUDIT_EVENTS @@ -331,7 +335,7 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) m = authmethod_lookup(authctxt, method); if (m != NULL && authctxt->failures < options.max_authtries) { debug2("input_userauth_request: try method %s", method); - authenticated = m->userauth(ssh); + authenticated = m->userauth(ssh, method); } if (!authctxt->authenticated) ensure_minimum_time_since(tstart, @@ -346,18 +350,27 @@ input_userauth_request(int type, u_int32_t seq, struct ssh *ssh) } void -userauth_finish(struct ssh *ssh, int authenticated, const char *method, +userauth_finish(struct ssh *ssh, int authenticated, const char *packet_method, const char *submethod) { Authctxt *authctxt = ssh->authctxt; + Authmethod *m = NULL; + const char *method = packet_method; char *methods; int r, partial = 0; - if (!authctxt->valid && authenticated) - fatal("INTERNAL ERROR: authenticated invalid user %s", - authctxt->user); - if (authenticated && authctxt->postponed) - fatal("INTERNAL ERROR: authenticated and postponed"); + if (authenticated) { + if (!authctxt->valid) { + fatal("INTERNAL ERROR: authenticated invalid user %s", + authctxt->user); + } + if (authctxt->postponed) + fatal("INTERNAL ERROR: authenticated and postponed"); + /* prefer primary authmethod name to possible synonym */ + if ((m = authmethod_byname(method)) == NULL) + fatal("INTERNAL ERROR: bad method %s", method); + method = m->name; + } /* Special handling for root */ if (authenticated && authctxt->pw->pw_uid == 0 && @@ -496,23 +509,42 @@ authmethods_get(Authctxt *authctxt) } static Authmethod * -authmethod_lookup(Authctxt *authctxt, const char *name) +authmethod_byname(const char *name) { int i; - if (name != NULL) - for (i = 0; authmethods[i] != NULL; i++) - if (authmethods[i]->enabled != NULL && - *(authmethods[i]->enabled) != 0 && - strcmp(name, authmethods[i]->name) == 0 && - auth2_method_allowed(authctxt, - authmethods[i]->name, NULL)) - return authmethods[i]; - debug2("Unrecognized authentication method name: %s", - name ? name : "NULL"); + if (name == NULL) + fatal_f("NULL authentication method name"); + for (i = 0; authmethods[i] != NULL; i++) { + if (strcmp(name, authmethods[i]->name) == 0 || + (authmethods[i]->synonym != NULL && + strcmp(name, authmethods[i]->synonym) == 0)) + return authmethods[i]; + } + debug_f("unrecognized authentication method name: %s", name); return NULL; } +static Authmethod * +authmethod_lookup(Authctxt *authctxt, const char *name) +{ + Authmethod *method; + + if ((method = authmethod_byname(name)) == NULL) + return NULL; + + if (method->enabled == NULL || *(method->enabled) == 0) { + debug3_f("method %s not enabled", name); + return NULL; + } + if (!auth2_method_allowed(authctxt, method->name, NULL)) { + debug3_f("method %s not allowed " + "by AuthenticationMethods", name); + return NULL; + } + return method; +} + /* * Check a comma-separated list of methods for validity. Is need_enable is * non-zero, then also require that the methods are enabled. diff --git a/authfd.c b/authfd.c index 0c259b8dacf..f2d3683838f 100644 --- a/authfd.c +++ b/authfd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: authfd.c,v 1.127 2021/01/26 00:46:17 djm Exp $ */ +/* $OpenBSD: authfd.c,v 1.129 2021/12/19 22:10:24 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -456,12 +456,63 @@ ssh_agent_sign(int sock, const struct sshkey *key, /* Encode key for a message to the agent. */ +static int +encode_dest_constraint_hop(struct sshbuf *m, + const struct dest_constraint_hop *dch) +{ + struct sshbuf *b; + u_int i; + int r; + + if ((b = sshbuf_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + if ((r = sshbuf_put_cstring(b, dch->user)) != 0 || + (r = sshbuf_put_cstring(b, dch->hostname)) != 0 || + (r = sshbuf_put_string(b, NULL, 0)) != 0) /* reserved */ + goto out; + for (i = 0; i < dch->nkeys; i++) { + if ((r = sshkey_puts(dch->keys[i], b)) != 0 || + (r = sshbuf_put_u8(b, dch->key_is_ca[i] != 0)) != 0) + goto out; + } + if ((r = sshbuf_put_stringb(m, b)) != 0) + goto out; + /* success */ + r = 0; + out: + sshbuf_free(b); + return r; +} + +static int +encode_dest_constraint(struct sshbuf *m, const struct dest_constraint *dc) +{ + struct sshbuf *b; + int r; + + if ((b = sshbuf_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + if ((r = encode_dest_constraint_hop(b, &dc->from) != 0) || + (r = encode_dest_constraint_hop(b, &dc->to) != 0) || + (r = sshbuf_put_string(b, NULL, 0)) != 0) /* reserved */ + goto out; + if ((r = sshbuf_put_stringb(m, b)) != 0) + goto out; + /* success */ + r = 0; + out: + sshbuf_free(b); + return r; +} static int encode_constraints(struct sshbuf *m, u_int life, u_int confirm, u_int maxsign, - const char *provider) + const char *provider, struct dest_constraint **dest_constraints, + size_t ndest_constraints) { int r; + struct sshbuf *b = NULL; + size_t i; if (life != 0) { if ((r = sshbuf_put_u8(m, SSH_AGENT_CONSTRAIN_LIFETIME)) != 0 || @@ -485,8 +536,26 @@ encode_constraints(struct sshbuf *m, u_int life, u_int confirm, u_int maxsign, (r = sshbuf_put_cstring(m, provider)) != 0) goto out; } + if (dest_constraints != NULL && ndest_constraints > 0) { + if ((b = sshbuf_new()) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + for (i = 0; i < ndest_constraints; i++) { + if ((r = encode_dest_constraint(b, + dest_constraints[i])) != 0) + goto out; + } + if ((r = sshbuf_put_u8(m, + SSH_AGENT_CONSTRAIN_EXTENSION)) != 0 || + (r = sshbuf_put_cstring(m, + "restrict-destination-v00@openssh.com")) != 0 || + (r = sshbuf_put_stringb(m, b)) != 0) + goto out; + } r = 0; out: + sshbuf_free(b); return r; } @@ -497,10 +566,12 @@ encode_constraints(struct sshbuf *m, u_int life, u_int confirm, u_int maxsign, int ssh_add_identity_constrained(int sock, struct sshkey *key, const char *comment, u_int life, u_int confirm, u_int maxsign, - const char *provider) + const char *provider, struct dest_constraint **dest_constraints, + size_t ndest_constraints) { struct sshbuf *msg; - int r, constrained = (life || confirm || maxsign || provider); + int r, constrained = (life || confirm || maxsign || + provider || dest_constraints); u_char type; if ((msg = sshbuf_new()) == NULL) @@ -540,7 +611,7 @@ ssh_add_identity_constrained(int sock, struct sshkey *key, } if (constrained && (r = encode_constraints(msg, life, confirm, maxsign, - provider)) != 0) + provider, dest_constraints, ndest_constraints)) != 0) goto out; if ((r = ssh_request_reply_decode(sock, msg)) != 0) goto out; @@ -594,7 +665,8 @@ ssh_remove_identity(int sock, const struct sshkey *key) */ int ssh_update_card(int sock, int add, const char *reader_id, const char *pin, - u_int life, u_int confirm) + u_int life, u_int confirm, + struct dest_constraint **dest_constraints, size_t ndest_constraints) { struct sshbuf *msg; int r, constrained = (life || confirm); @@ -614,7 +686,8 @@ ssh_update_card(int sock, int add, const char *reader_id, const char *pin, (r = sshbuf_put_cstring(msg, pin)) != 0) goto out; if (constrained && - (r = encode_constraints(msg, life, confirm, 0, NULL)) != 0) + (r = encode_constraints(msg, life, confirm, 0, NULL, + dest_constraints, ndest_constraints)) != 0) goto out; if ((r = ssh_request_reply_decode(sock, msg)) != 0) goto out; @@ -654,3 +727,32 @@ ssh_remove_all_identities(int sock, int version) sshbuf_free(msg); return r; } + +/* Binds a session ID to a hostkey via the initial KEX signature. */ +int +ssh_agent_bind_hostkey(int sock, const struct sshkey *key, + const struct sshbuf *session_id, const struct sshbuf *signature, + int forwarding) +{ + struct sshbuf *msg; + int r; + + if (key == NULL || session_id == NULL || signature == NULL) + return SSH_ERR_INVALID_ARGUMENT; + if ((msg = sshbuf_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + if ((r = sshbuf_put_u8(msg, SSH_AGENTC_EXTENSION)) != 0 || + (r = sshbuf_put_cstring(msg, "session-bind@openssh.com")) != 0 || + (r = sshkey_puts(key, msg)) != 0 || + (r = sshbuf_put_stringb(msg, session_id)) != 0 || + (r = sshbuf_put_stringb(msg, signature)) != 0 || + (r = sshbuf_put_u8(msg, forwarding ? 1 : 0)) != 0) + goto out; + if ((r = ssh_request_reply_decode(sock, msg)) != 0) + goto out; + /* success */ + r = 0; + out: + sshbuf_free(msg); + return r; +} diff --git a/authfd.h b/authfd.h index 4fbf82f8c00..7a1c0ddff98 100644 --- a/authfd.h +++ b/authfd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: authfd.h,v 1.49 2020/06/26 05:03:36 djm Exp $ */ +/* $OpenBSD: authfd.h,v 1.51 2021/12/19 22:10:24 djm Exp $ */ /* * Author: Tatu Ylonen @@ -16,6 +16,9 @@ #ifndef AUTHFD_H #define AUTHFD_H +struct sshbuf; +struct sshkey; + /* List of identities returned by ssh_fetch_identitylist() */ struct ssh_identitylist { size_t nkeys; @@ -23,6 +26,20 @@ struct ssh_identitylist { char **comments; }; +/* Key destination restrictions */ +struct dest_constraint_hop { + char *user; /* wildcards allowed */ + char *hostname; /* used to matching cert principals and for display */ + int is_ca; + u_int nkeys; /* number of entries in *both* 'keys' and 'key_is_ca' */ + struct sshkey **keys; + int *key_is_ca; +}; +struct dest_constraint { + struct dest_constraint_hop from; + struct dest_constraint_hop to; +}; + int ssh_get_authentication_socket(int *fdp); int ssh_get_authentication_socket_path(const char *authsocket, int *fdp); void ssh_close_authentication_socket(int sock); @@ -31,18 +48,25 @@ int ssh_lock_agent(int sock, int lock, const char *password); int ssh_fetch_identitylist(int sock, struct ssh_identitylist **idlp); void ssh_free_identitylist(struct ssh_identitylist *idl); int ssh_add_identity_constrained(int sock, struct sshkey *key, - const char *comment, u_int life, u_int confirm, u_int maxsign, - const char *provider); + const char *comment, u_int life, u_int confirm, u_int maxsign, + const char *provider, struct dest_constraint **dest_constraints, + size_t ndest_constraints); int ssh_agent_has_key(int sock, const struct sshkey *key); int ssh_remove_identity(int sock, const struct sshkey *key); int ssh_update_card(int sock, int add, const char *reader_id, - const char *pin, u_int life, u_int confirm); + const char *pin, u_int life, u_int confirm, + struct dest_constraint **dest_constraints, + size_t ndest_constraints); int ssh_remove_all_identities(int sock, int version); int ssh_agent_sign(int sock, const struct sshkey *key, u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, const char *alg, u_int compat); +int ssh_agent_bind_hostkey(int sock, const struct sshkey *key, + const struct sshbuf *session_id, const struct sshbuf *signature, + int forwarding); + /* Messages for the authentication agent connection. */ #define SSH_AGENTC_REQUEST_RSA_IDENTITIES 1 #define SSH_AGENT_RSA_IDENTITIES_ANSWER 2 @@ -76,6 +100,9 @@ int ssh_agent_sign(int sock, const struct sshkey *key, #define SSH2_AGENTC_ADD_ID_CONSTRAINED 25 #define SSH_AGENTC_ADD_SMARTCARD_KEY_CONSTRAINED 26 +/* generic extension mechanism */ +#define SSH_AGENTC_EXTENSION 27 + #define SSH_AGENT_CONSTRAIN_LIFETIME 1 #define SSH_AGENT_CONSTRAIN_CONFIRM 2 #define SSH_AGENT_CONSTRAIN_MAXSIGN 3 diff --git a/authfile.c b/authfile.c index 15bfc248172..15f1c42106c 100644 --- a/authfile.c +++ b/authfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: authfile.c,v 1.141 2020/06/18 23:33:38 djm Exp $ */ +/* $OpenBSD: authfile.c,v 1.142 2022/01/01 01:55:30 jsg Exp $ */ /* * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. * @@ -372,7 +372,7 @@ sshkey_load_private_cert(int type, const char *filename, const char *passphrase, * Returns success if the specified "key" is listed in the file "filename", * SSH_ERR_KEY_NOT_FOUND: if the key is not listed or another error. * If "strict_type" is set then the key type must match exactly, - * otherwise a comparison that ignores certficiate data is performed. + * otherwise a comparison that ignores certificate data is performed. * If "check_ca" is set and "key" is a certificate, then its CA key is * also checked and sshkey_in_file() will return success if either is found. */ diff --git a/channels.c b/channels.c index 32d1f617860..aedd45ce765 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.406 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.413 2022/02/17 10:58:27 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -57,6 +57,9 @@ #include #include #include +#ifdef HAVE_POLL_H +#include +#endif #include #ifdef HAVE_STDINT_H # include @@ -84,6 +87,9 @@ #include "pathnames.h" #include "match.h" +/* XXX remove once we're satisfied there's no lurking bugs */ +/* #define DEBUG_CHANNEL_POLL 1 */ + /* -- agent forwarding */ #define NUM_SOCKS 10 @@ -98,9 +104,8 @@ /* Maximum number of fake X11 displays to try. */ #define MAX_DISPLAYS 1000 -/* Per-channel callback for pre/post select() actions */ -typedef void chan_fn(struct ssh *, Channel *c, - fd_set *readset, fd_set *writeset); +/* Per-channel callback for pre/post IO actions */ +typedef void chan_fn(struct ssh *, Channel *c); /* * Data structure for storing which hosts are permitted for forward requests. @@ -161,17 +166,11 @@ struct ssh_channels { u_int channels_alloc; /* - * Maximum file descriptor value used in any of the channels. This is - * updated in channel_new. - */ - int channel_max_fd; - - /* - * 'channel_pre*' are called just before select() to add any bits - * relevant to channels in the select bitmasks. + * 'channel_pre*' are called just before IO to add any bits + * relevant to channels in the c->io_want bitmasks. * * 'channel_post*': perform any appropriate operations for - * channels which have events pending. + * channels which have c->io_ready events pending. */ chan_fn **channel_pre; chan_fn **channel_post; @@ -305,13 +304,6 @@ static void channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd, int extusage, int nonblock, int is_tty) { - struct ssh_channels *sc = ssh->chanctxt; - - /* Update the maximum file descriptor value. */ - sc->channel_max_fd = MAXIMUM(sc->channel_max_fd, rfd); - sc->channel_max_fd = MAXIMUM(sc->channel_max_fd, wfd); - sc->channel_max_fd = MAXIMUM(sc->channel_max_fd, efd); - if (rfd != -1) fcntl(rfd, F_SETFD, FD_CLOEXEC); if (wfd != -1 && wfd != rfd) @@ -333,7 +325,27 @@ channel_register_fds(struct ssh *ssh, Channel *c, int rfd, int wfd, int efd, #endif /* enable nonblocking mode */ - if (nonblock) { + c->restore_block = 0; + if (nonblock == CHANNEL_NONBLOCK_STDIO) { + /* + * Special handling for stdio file descriptors: do not set + * non-blocking mode if they are TTYs. Otherwise prepare to + * restore their blocking state on exit to avoid interfering + * with other programs that follow. + */ + if (rfd != -1 && !isatty(rfd) && fcntl(rfd, F_GETFL) == 0) { + c->restore_block |= CHANNEL_RESTORE_RFD; + set_nonblock(rfd); + } + if (wfd != -1 && !isatty(wfd) && fcntl(wfd, F_GETFL) == 0) { + c->restore_block |= CHANNEL_RESTORE_WFD; + set_nonblock(wfd); + } + if (efd != -1 && !isatty(efd) && fcntl(efd, F_GETFL) == 0) { + c->restore_block |= CHANNEL_RESTORE_EFD; + set_nonblock(efd); + } + } else if (nonblock) { if (rfd != -1) set_nonblock(rfd); if (wfd != -1) @@ -403,36 +415,42 @@ channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd, return c; } -static void -channel_find_maxfd(struct ssh_channels *sc) +int +channel_close_fd(struct ssh *ssh, Channel *c, int *fdp) { - u_int i; - int max = 0; - Channel *c; + int ret, fd = *fdp; - for (i = 0; i < sc->channels_alloc; i++) { - c = sc->channels[i]; - if (c != NULL) { - max = MAXIMUM(max, c->rfd); - max = MAXIMUM(max, c->wfd); - max = MAXIMUM(max, c->efd); - } - } - sc->channel_max_fd = max; -} + if (fd == -1) + return 0; -int -channel_close_fd(struct ssh *ssh, int *fdp) -{ - struct ssh_channels *sc = ssh->chanctxt; - int ret = 0, fd = *fdp; + if ((*fdp == c->rfd && (c->restore_block & CHANNEL_RESTORE_RFD) != 0) || + (*fdp == c->wfd && (c->restore_block & CHANNEL_RESTORE_WFD) != 0) || + (*fdp == c->efd && (c->restore_block & CHANNEL_RESTORE_EFD) != 0)) + (void)fcntl(*fdp, F_SETFL, 0); /* restore blocking */ - if (fd != -1) { - ret = close(fd); - *fdp = -1; - if (fd == sc->channel_max_fd) - channel_find_maxfd(sc); + if (*fdp == c->rfd) { + c->io_want &= ~SSH_CHAN_IO_RFD; + c->io_ready &= ~SSH_CHAN_IO_RFD; + c->rfd = -1; + } + if (*fdp == c->wfd) { + c->io_want &= ~SSH_CHAN_IO_WFD; + c->io_ready &= ~SSH_CHAN_IO_WFD; + c->wfd = -1; + } + if (*fdp == c->efd) { + c->io_want &= ~SSH_CHAN_IO_EFD; + c->io_ready &= ~SSH_CHAN_IO_EFD; + c->efd = -1; + } + if (*fdp == c->sock) { + c->io_want &= ~SSH_CHAN_IO_SOCK; + c->io_ready &= ~SSH_CHAN_IO_SOCK; + c->sock = -1; } + + ret = close(fd); + *fdp = -1; /* probably redundant */ return ret; } @@ -442,13 +460,13 @@ channel_close_fds(struct ssh *ssh, Channel *c) { int sock = c->sock, rfd = c->rfd, wfd = c->wfd, efd = c->efd; - channel_close_fd(ssh, &c->sock); + channel_close_fd(ssh, c, &c->sock); if (rfd != sock) - channel_close_fd(ssh, &c->rfd); + channel_close_fd(ssh, c, &c->rfd); if (wfd != sock && wfd != rfd) - channel_close_fd(ssh, &c->wfd); + channel_close_fd(ssh, c, &c->wfd); if (efd != sock && efd != rfd && efd != wfd) - channel_close_fd(ssh, &c->efd); + channel_close_fd(ssh, c, &c->efd); } static void @@ -517,7 +535,7 @@ permission_set_get_array(struct ssh *ssh, int who, int where, } } -/* Adds an entry to the spcified forwarding list */ +/* Adds an entry to the specified forwarding list */ static int permission_set_add(struct ssh *ssh, int who, int where, const char *host_to_connect, int port_to_connect, @@ -603,9 +621,11 @@ channel_free(struct ssh *ssh, Channel *c) debug("channel %d: free: %s, nchannels %u", c->self, c->remote_name ? c->remote_name : "???", n); - if (c->type == SSH_CHANNEL_MUX_CLIENT) + if (c->type == SSH_CHANNEL_MUX_CLIENT) { mux_remove_remote_forwardings(ssh, c); - else if (c->type == SSH_CHANNEL_MUX_LISTENER) { + free(c->mux_ctx); + c->mux_ctx = NULL; + } else if (c->type == SSH_CHANNEL_MUX_LISTENER) { free(c->mux_ctx); c->mux_ctx = NULL; } @@ -652,7 +672,6 @@ channel_free_all(struct ssh *ssh) free(sc->channels); sc->channels = NULL; sc->channels_alloc = 0; - sc->channel_max_fd = 0; free(sc->x11_saved_display); sc->x11_saved_display = NULL; @@ -702,7 +721,7 @@ channel_stop_listening(struct ssh *ssh) case SSH_CHANNEL_X11_LISTENER: case SSH_CHANNEL_UNIX_LISTENER: case SSH_CHANNEL_RUNIX_LISTENER: - channel_close_fd(ssh, &c->sock); + channel_close_fd(ssh, c, &c->sock); channel_free(ssh, c); break; } @@ -844,13 +863,14 @@ channel_format_status(const Channel *c) char *ret = NULL; xasprintf(&ret, "t%d %s%u i%u/%zu o%u/%zu e[%s]/%zu " - "fd %d/%d/%d sock %d cc %d", + "fd %d/%d/%d sock %d cc %d io 0x%02x/0x%02x", c->type, c->have_remote_id ? "r" : "nr", c->remote_id, c->istate, sshbuf_len(c->input), c->ostate, sshbuf_len(c->output), channel_format_extended_usage(c), sshbuf_len(c->extended), - c->rfd, c->wfd, c->efd, c->sock, c->ctl_chan); + c->rfd, c->wfd, c->efd, c->sock, c->ctl_chan, + c->io_want, c->io_ready); return ret; } @@ -1068,33 +1088,31 @@ channel_set_fds(struct ssh *ssh, int id, int rfd, int wfd, int efd, } static void -channel_pre_listener(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_pre_listener(struct ssh *ssh, Channel *c) { - FD_SET(c->sock, readset); + c->io_want = SSH_CHAN_IO_SOCK_R; } static void -channel_pre_connecting(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_pre_connecting(struct ssh *ssh, Channel *c) { debug3("channel %d: waiting for connection", c->self); - FD_SET(c->sock, writeset); + c->io_want = SSH_CHAN_IO_SOCK_W; } static void -channel_pre_open(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_pre_open(struct ssh *ssh, Channel *c) { + c->io_want = 0; if (c->istate == CHAN_INPUT_OPEN && c->remote_window > 0 && sshbuf_len(c->input) < c->remote_window && sshbuf_check_reserve(c->input, CHAN_RBUF) == 0) - FD_SET(c->rfd, readset); + c->io_want |= SSH_CHAN_IO_RFD; if (c->ostate == CHAN_OUTPUT_OPEN || c->ostate == CHAN_OUTPUT_WAIT_DRAIN) { if (sshbuf_len(c->output) > 0) { - FD_SET(c->wfd, writeset); + c->io_want |= SSH_CHAN_IO_WFD; } else if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN) { if (CHANNEL_EFD_OUTPUT_ACTIVE(c)) debug2("channel %d: " @@ -1109,12 +1127,12 @@ channel_pre_open(struct ssh *ssh, Channel *c, c->ostate == CHAN_OUTPUT_CLOSED)) { if (c->extended_usage == CHAN_EXTENDED_WRITE && sshbuf_len(c->extended) > 0) - FD_SET(c->efd, writeset); + c->io_want |= SSH_CHAN_IO_EFD_W; else if (c->efd != -1 && !(c->flags & CHAN_EOF_SENT) && (c->extended_usage == CHAN_EXTENDED_READ || c->extended_usage == CHAN_EXTENDED_IGNORE) && sshbuf_len(c->extended) < c->remote_window) - FD_SET(c->efd, readset); + c->io_want |= SSH_CHAN_IO_EFD_R; } /* XXX: What about efd? races? */ } @@ -1196,8 +1214,7 @@ x11_open_helper(struct ssh *ssh, struct sshbuf *b) } static void -channel_pre_x11_open(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_pre_x11_open(struct ssh *ssh, Channel *c) { int ret = x11_open_helper(ssh, c->output); @@ -1205,7 +1222,7 @@ channel_pre_x11_open(struct ssh *ssh, Channel *c, if (ret == 1) { c->type = SSH_CHANNEL_OPEN; - channel_pre_open(ssh, c, readset, writeset); + channel_pre_open(ssh, c); } else if (ret == -1) { logit("X11 connection rejected because of wrong authentication."); debug2("X11 rejected %d i%d/o%d", @@ -1220,12 +1237,12 @@ channel_pre_x11_open(struct ssh *ssh, Channel *c, } static void -channel_pre_mux_client(struct ssh *ssh, - Channel *c, fd_set *readset, fd_set *writeset) +channel_pre_mux_client(struct ssh *ssh, Channel *c) { + c->io_want = 0; if (c->istate == CHAN_INPUT_OPEN && !c->mux_pause && sshbuf_check_reserve(c->input, CHAN_RBUF) == 0) - FD_SET(c->rfd, readset); + c->io_want |= SSH_CHAN_IO_RFD; if (c->istate == CHAN_INPUT_WAIT_DRAIN) { /* clear buffer immediately (discard any partial packet) */ sshbuf_reset(c->input); @@ -1236,7 +1253,7 @@ channel_pre_mux_client(struct ssh *ssh, if (c->ostate == CHAN_OUTPUT_OPEN || c->ostate == CHAN_OUTPUT_WAIT_DRAIN) { if (sshbuf_len(c->output) > 0) - FD_SET(c->wfd, writeset); + c->io_want |= SSH_CHAN_IO_WFD; else if (c->ostate == CHAN_OUTPUT_WAIT_DRAIN) chan_obuf_empty(ssh, c); } @@ -1491,7 +1508,8 @@ channel_decode_socks5(Channel *c, struct sshbuf *input, struct sshbuf *output) Channel * channel_connect_stdio_fwd(struct ssh *ssh, - const char *host_to_connect, u_short port_to_connect, int in, int out) + const char *host_to_connect, u_short port_to_connect, + int in, int out, int nonblock) { Channel *c; @@ -1499,7 +1517,7 @@ channel_connect_stdio_fwd(struct ssh *ssh, c = channel_new(ssh, "stdio-forward", SSH_CHANNEL_OPENING, in, out, -1, CHAN_TCP_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, - 0, "stdio-forward", /*nonblock*/0); + 0, "stdio-forward", nonblock); c->path = xstrdup(host_to_connect); c->host_port = port_to_connect; @@ -1514,20 +1532,20 @@ channel_connect_stdio_fwd(struct ssh *ssh, /* dynamic port forwarding */ static void -channel_pre_dynamic(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_pre_dynamic(struct ssh *ssh, Channel *c) { const u_char *p; u_int have; int ret; + c->io_want = 0; have = sshbuf_len(c->input); debug2("channel %d: pre_dynamic: have %d", c->self, have); /* sshbuf_dump(c->input, stderr); */ /* check if the fixed size part of the packet is in buffer. */ if (have < 3) { /* need more */ - FD_SET(c->sock, readset); + c->io_want |= SSH_CHAN_IO_RFD; return; } /* try to guess the protocol */ @@ -1549,9 +1567,9 @@ channel_pre_dynamic(struct ssh *ssh, Channel *c, } else if (ret == 0) { debug2("channel %d: pre_dynamic: need more", c->self); /* need more */ - FD_SET(c->sock, readset); + c->io_want |= SSH_CHAN_IO_RFD; if (sshbuf_len(c->output)) - FD_SET(c->sock, writeset); + c->io_want |= SSH_CHAN_IO_WFD; } else { /* switch to the next state */ c->type = SSH_CHANNEL_OPENING; @@ -1573,7 +1591,7 @@ rdynamic_close(struct ssh *ssh, Channel *c) /* reverse dynamic port forwarding */ static void -channel_before_prepare_select_rdynamic(struct ssh *ssh, Channel *c) +channel_before_prepare_io_rdynamic(struct ssh *ssh, Channel *c) { const u_char *p; u_int have, len; @@ -1631,8 +1649,7 @@ channel_before_prepare_select_rdynamic(struct ssh *ssh, Channel *c) /* This is our fake X11 server socket. */ static void -channel_post_x11_listener(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_x11_listener(struct ssh *ssh, Channel *c) { Channel *nc; struct sockaddr_storage addr; @@ -1640,7 +1657,7 @@ channel_post_x11_listener(struct ssh *ssh, Channel *c, socklen_t addrlen; char buf[16384], *remote_ipaddr; - if (!FD_ISSET(c->sock, readset)) + if ((c->io_ready & SSH_CHAN_IO_SOCK_R) == 0) return; debug("X11 connection requested."); @@ -1649,7 +1666,7 @@ channel_post_x11_listener(struct ssh *ssh, Channel *c, if (c->single_connection) { oerrno = errno; debug2("single_connection: closing X11 listener."); - channel_close_fd(ssh, &c->sock); + channel_close_fd(ssh, c, &c->sock); chan_mark_dead(ssh, c); errno = oerrno; } @@ -1749,8 +1766,7 @@ channel_set_x11_refuse_time(struct ssh *ssh, u_int refuse_time) * This socket is listening for connections to a forwarded TCP/IP port. */ static void -channel_post_port_listener(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_port_listener(struct ssh *ssh, Channel *c) { Channel *nc; struct sockaddr_storage addr; @@ -1758,7 +1774,7 @@ channel_post_port_listener(struct ssh *ssh, Channel *c, socklen_t addrlen; char *rtype; - if (!FD_ISSET(c->sock, readset)) + if ((c->io_ready & SSH_CHAN_IO_SOCK_R) == 0) return; debug("Connection to port %d forwarding to %.100s port %d requested.", @@ -1809,15 +1825,14 @@ channel_post_port_listener(struct ssh *ssh, Channel *c, * clients. */ static void -channel_post_auth_listener(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_auth_listener(struct ssh *ssh, Channel *c) { Channel *nc; int r, newsock; struct sockaddr_storage addr; socklen_t addrlen; - if (!FD_ISSET(c->sock, readset)) + if ((c->io_ready & SSH_CHAN_IO_SOCK_R) == 0) return; addrlen = sizeof(addr); @@ -1838,13 +1853,12 @@ channel_post_auth_listener(struct ssh *ssh, Channel *c, } static void -channel_post_connecting(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_connecting(struct ssh *ssh, Channel *c) { int err = 0, sock, isopen, r; socklen_t sz = sizeof(err); - if (!FD_ISSET(c->sock, writeset)) + if ((c->io_ready & SSH_CHAN_IO_SOCK_W) == 0) return; if (!c->have_remote_id) fatal_f("channel %d: no remote id", c->self); @@ -1878,7 +1892,6 @@ channel_post_connecting(struct ssh *ssh, Channel *c, if ((sock = connect_next(&c->connect_ctx)) > 0) { close(c->sock); c->sock = c->rfd = c->wfd = sock; - channel_find_maxfd(ssh->chanctxt); return; } /* Exhausted all addresses */ @@ -1903,31 +1916,64 @@ channel_post_connecting(struct ssh *ssh, Channel *c, } static int -channel_handle_rfd(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_handle_rfd(struct ssh *ssh, Channel *c) { char buf[CHAN_RBUF]; ssize_t len; int r, force; + size_t have, avail, maxlen = CHANNEL_MAX_READ; + int pty_zeroread = 0; + +#ifdef PTY_ZEROREAD + /* Bug on AIX: read(1) can return 0 for a non-closed fd */ + pty_zeroread = c->isatty; +#endif force = c->isatty && c->detach_close && c->istate != CHAN_INPUT_CLOSED; - if (c->rfd == -1 || (!force && !FD_ISSET(c->rfd, readset))) + if (!force && (c->io_ready & SSH_CHAN_IO_RFD) == 0) + return 1; + if ((avail = sshbuf_avail(c->input)) == 0) + return 1; /* Shouldn't happen */ + + /* + * For "simple" channels (i.e. not datagram or filtered), we can + * read directly to the channel buffer. + */ + if (!pty_zeroread && c->input_filter == NULL && !c->datagram) { + /* Only OPEN channels have valid rwin */ + if (c->type == SSH_CHANNEL_OPEN) { + if ((have = sshbuf_len(c->input)) >= c->remote_window) + return 1; /* shouldn't happen */ + if (maxlen > c->remote_window - have) + maxlen = c->remote_window - have; + } + if (maxlen > avail) + maxlen = avail; + if ((r = sshbuf_read(c->rfd, c->input, maxlen, NULL)) != 0) { + if (errno == EINTR || (!force && + (errno == EAGAIN || errno == EWOULDBLOCK))) + return 1; + debug2("channel %d: read failed rfd %d maxlen %zu: %s", + c->self, c->rfd, maxlen, ssh_err(r)); + goto rfail; + } return 1; + } errno = 0; len = read(c->rfd, buf, sizeof(buf)); + /* fixup AIX zero-length read with errno set to look more like errors */ + if (pty_zeroread && len == 0 && errno != 0) + len = -1; if (len == -1 && (errno == EINTR || ((errno == EAGAIN || errno == EWOULDBLOCK) && !force))) return 1; -#ifndef PTY_ZEROREAD - if (len <= 0) { -#else - if ((!c->isatty && len <= 0) || - (c->isatty && (len < 0 || (len == 0 && errno != 0)))) { -#endif - debug2("channel %d: read<=0 rfd %d len %zd", - c->self, c->rfd, len); + if (len < 0 || (!pty_zeroread && len == 0)) { + debug2("channel %d: read<=0 rfd %d len %zd: %s", + c->self, c->rfd, len, + len == 0 ? "closed" : strerror(errno)); + rfail: if (c->type != SSH_CHANNEL_OPEN) { debug2("channel %d: not open", c->self); chan_mark_dead(ssh, c); @@ -1951,16 +1997,16 @@ channel_handle_rfd(struct ssh *ssh, Channel *c, } static int -channel_handle_wfd(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_handle_wfd(struct ssh *ssh, Channel *c) { struct termios tio; u_char *data = NULL, *buf; /* XXX const; need filter API change */ size_t dlen, olen = 0; int r, len; - if (c->wfd == -1 || !FD_ISSET(c->wfd, writeset) || - sshbuf_len(c->output) == 0) + if ((c->io_ready & SSH_CHAN_IO_WFD) == 0) + return 1; + if (sshbuf_len(c->output) == 0) return 1; /* Send buffered output data to the socket. */ @@ -1998,7 +2044,7 @@ channel_handle_wfd(struct ssh *ssh, Channel *c, #ifdef _AIX /* XXX: Later AIX versions can't push as much data to tty */ if (c->wfd_isatty) - dlen = MIN(dlen, 8*1024); + dlen = MINIMUM(dlen, 8*1024); #endif len = write(c->wfd, buf, dlen); @@ -2041,13 +2087,14 @@ channel_handle_wfd(struct ssh *ssh, Channel *c, } static int -channel_handle_efd_write(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_handle_efd_write(struct ssh *ssh, Channel *c) { int r; ssize_t len; - if (!FD_ISSET(c->efd, writeset) || sshbuf_len(c->extended) == 0) + if ((c->io_ready & SSH_CHAN_IO_EFD_W) == 0) + return 1; + if (sshbuf_len(c->extended) == 0) return 1; len = write(c->efd, sshbuf_ptr(c->extended), @@ -2058,7 +2105,7 @@ channel_handle_efd_write(struct ssh *ssh, Channel *c, return 1; if (len <= 0) { debug2("channel %d: closing write-efd %d", c->self, c->efd); - channel_close_fd(ssh, &c->efd); + channel_close_fd(ssh, c, &c->efd); } else { if ((r = sshbuf_consume(c->extended, len)) != 0) fatal_fr(r, "channel %i: consume", c->self); @@ -2068,8 +2115,7 @@ channel_handle_efd_write(struct ssh *ssh, Channel *c, } static int -channel_handle_efd_read(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_handle_efd_read(struct ssh *ssh, Channel *c) { char buf[CHAN_RBUF]; ssize_t len; @@ -2077,7 +2123,7 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c, force = c->isatty && c->detach_close && c->istate != CHAN_INPUT_CLOSED; - if (c->efd == -1 || (!force && !FD_ISSET(c->efd, readset))) + if (!force && (c->io_ready & SSH_CHAN_IO_EFD_R) == 0) return 1; len = read(c->efd, buf, sizeof(buf)); @@ -2087,7 +2133,7 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c, return 1; if (len <= 0) { debug2("channel %d: closing read-efd %d", c->self, c->efd); - channel_close_fd(ssh, &c->efd); + channel_close_fd(ssh, c, &c->efd); } else if (c->extended_usage == CHAN_EXTENDED_IGNORE) debug3("channel %d: discard efd", c->self); else if ((r = sshbuf_put(c->extended, buf, len)) != 0) @@ -2096,8 +2142,7 @@ channel_handle_efd_read(struct ssh *ssh, Channel *c, } static int -channel_handle_efd(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_handle_efd(struct ssh *ssh, Channel *c) { if (c->efd == -1) return 1; @@ -2105,10 +2150,10 @@ channel_handle_efd(struct ssh *ssh, Channel *c, /** XXX handle drain efd, too */ if (c->extended_usage == CHAN_EXTENDED_WRITE) - return channel_handle_efd_write(ssh, c, readset, writeset); + return channel_handle_efd_write(ssh, c); else if (c->extended_usage == CHAN_EXTENDED_READ || c->extended_usage == CHAN_EXTENDED_IGNORE) - return channel_handle_efd_read(ssh, c, readset, writeset); + return channel_handle_efd_read(ssh, c); return 1; } @@ -2142,12 +2187,11 @@ channel_check_window(struct ssh *ssh, Channel *c) } static void -channel_post_open(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_open(struct ssh *ssh, Channel *c) { - channel_handle_rfd(ssh, c, readset, writeset); - channel_handle_wfd(ssh, c, readset, writeset); - channel_handle_efd(ssh, c, readset, writeset); + channel_handle_rfd(ssh, c); + channel_handle_wfd(ssh, c); + channel_handle_efd(ssh, c); channel_check_window(ssh, c); } @@ -2176,12 +2220,11 @@ read_mux(struct ssh *ssh, Channel *c, u_int need) } static void -channel_post_mux_client_read(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_mux_client_read(struct ssh *ssh, Channel *c) { u_int need; - if (c->rfd == -1 || !FD_ISSET(c->rfd, readset)) + if ((c->io_ready & SSH_CHAN_IO_RFD) == 0) return; if (c->istate != CHAN_INPUT_OPEN && c->istate != CHAN_INPUT_WAIT_DRAIN) return; @@ -2213,14 +2256,14 @@ channel_post_mux_client_read(struct ssh *ssh, Channel *c, } static void -channel_post_mux_client_write(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_mux_client_write(struct ssh *ssh, Channel *c) { ssize_t len; int r; - if (c->wfd == -1 || !FD_ISSET(c->wfd, writeset) || - sshbuf_len(c->output) == 0) + if ((c->io_ready & SSH_CHAN_IO_WFD) == 0) + return; + if (sshbuf_len(c->output) == 0) return; len = write(c->wfd, sshbuf_ptr(c->output), sshbuf_len(c->output)); @@ -2235,16 +2278,14 @@ channel_post_mux_client_write(struct ssh *ssh, Channel *c, } static void -channel_post_mux_client(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_mux_client(struct ssh *ssh, Channel *c) { - channel_post_mux_client_read(ssh, c, readset, writeset); - channel_post_mux_client_write(ssh, c, readset, writeset); + channel_post_mux_client_read(ssh, c); + channel_post_mux_client_write(ssh, c); } static void -channel_post_mux_listener(struct ssh *ssh, Channel *c, - fd_set *readset, fd_set *writeset) +channel_post_mux_listener(struct ssh *ssh, Channel *c) { Channel *nc; struct sockaddr_storage addr; @@ -2253,7 +2294,7 @@ channel_post_mux_listener(struct ssh *ssh, Channel *c, uid_t euid; gid_t egid; - if (!FD_ISSET(c->sock, readset)) + if ((c->io_ready & SSH_CHAN_IO_SOCK_R) == 0) return; debug("multiplexing control connection"); @@ -2359,8 +2400,7 @@ channel_garbage_collect(struct ssh *ssh, Channel *c) enum channel_table { CHAN_PRE, CHAN_POST }; static void -channel_handler(struct ssh *ssh, int table, - fd_set *readset, fd_set *writeset, time_t *unpause_secs) +channel_handler(struct ssh *ssh, int table, time_t *unpause_secs) { struct ssh_channels *sc = ssh->chanctxt; chan_fn **ftab = table == CHAN_PRE ? sc->channel_pre : sc->channel_post; @@ -2386,7 +2426,7 @@ channel_handler(struct ssh *ssh, int table, * Run handlers that are not paused. */ if (c->notbefore <= now) - (*ftab[c->type])(ssh, c, readset, writeset); + (*ftab[c->type])(ssh, c); else if (unpause_secs != NULL) { /* * Collect the time that the earliest @@ -2408,12 +2448,13 @@ channel_handler(struct ssh *ssh, int table, } /* - * Create sockets before allocating the select bitmasks. + * Create sockets before preparing IO. * This is necessary for things that need to happen after reading - * the network-input but before channel_prepare_select(). + * the network-input but need to be completed before IO event setup, e.g. + * because they may create new channels. */ static void -channel_before_prepare_select(struct ssh *ssh) +channel_before_prepare_io(struct ssh *ssh) { struct ssh_channels *sc = ssh->chanctxt; Channel *c; @@ -2424,53 +2465,266 @@ channel_before_prepare_select(struct ssh *ssh) if (c == NULL) continue; if (c->type == SSH_CHANNEL_RDYNAMIC_OPEN) - channel_before_prepare_select_rdynamic(ssh, c); + channel_before_prepare_io_rdynamic(ssh, c); } } -/* - * Allocate/update select bitmasks and add any bits relevant to channels in - * select bitmasks. - */ +static void +dump_channel_poll(const char *func, const char *what, Channel *c, + u_int pollfd_offset, struct pollfd *pfd) +{ +#ifdef DEBUG_CHANNEL_POLL + debug3_f("channel %d: rfd r%d w%d e%d s%d " + "pfd[%u].fd=%d want 0x%02x ev 0x%02x ready 0x%02x rev 0x%02x", + c->self, c->rfd, c->wfd, c->efd, c->sock, pollfd_offset, pfd->fd, + c->io_want, pfd->events, c->io_ready, pfd->revents); +#endif +} + +/* Prepare pollfd entries for a single channel */ +static void +channel_prepare_pollfd(Channel *c, u_int *next_pollfd, + struct pollfd *pfd, u_int npfd) +{ + u_int p = *next_pollfd; + + if (c == NULL) + return; + if (p + 4 > npfd) { + /* Shouldn't happen */ + fatal_f("channel %d: bad pfd offset %u (max %u)", + c->self, p, npfd); + } + c->pollfd_offset = -1; + /* + * prepare c->rfd + * + * This is a special case, since c->rfd might be the same as + * c->wfd, c->efd and/or c->sock. Handle those here if they want + * IO too. + */ + if (c->rfd != -1) { + if (c->pollfd_offset == -1) + c->pollfd_offset = p; + pfd[p].fd = c->rfd; + pfd[p].events = 0; + if ((c->io_want & SSH_CHAN_IO_RFD) != 0) + pfd[p].events |= POLLIN; + /* rfd == wfd */ + if (c->wfd == c->rfd && + (c->io_want & SSH_CHAN_IO_WFD) != 0) + pfd[p].events |= POLLOUT; + /* rfd == efd */ + if (c->efd == c->rfd && + (c->io_want & SSH_CHAN_IO_EFD_R) != 0) + pfd[p].events |= POLLIN; + if (c->efd == c->rfd && + (c->io_want & SSH_CHAN_IO_EFD_W) != 0) + pfd[p].events |= POLLOUT; + /* rfd == sock */ + if (c->sock == c->rfd && + (c->io_want & SSH_CHAN_IO_SOCK_R) != 0) + pfd[p].events |= POLLIN; + if (c->sock == c->rfd && + (c->io_want & SSH_CHAN_IO_SOCK_W) != 0) + pfd[p].events |= POLLOUT; + dump_channel_poll(__func__, "rfd", c, p, &pfd[p]); + p++; + } + /* prepare c->wfd (if not already handled above) */ + if (c->wfd != -1 && c->rfd != c->wfd) { + if (c->pollfd_offset == -1) + c->pollfd_offset = p; + pfd[p].fd = c->wfd; + pfd[p].events = 0; + if ((c->io_want & SSH_CHAN_IO_WFD) != 0) + pfd[p].events = POLLOUT; + dump_channel_poll(__func__, "wfd", c, p, &pfd[p]); + p++; + } + /* prepare c->efd (if not already handled above) */ + if (c->efd != -1 && c->rfd != c->efd) { + if (c->pollfd_offset == -1) + c->pollfd_offset = p; + pfd[p].fd = c->efd; + pfd[p].events = 0; + if ((c->io_want & SSH_CHAN_IO_EFD_R) != 0) + pfd[p].events |= POLLIN; + if ((c->io_want & SSH_CHAN_IO_EFD_W) != 0) + pfd[p].events |= POLLOUT; + dump_channel_poll(__func__, "efd", c, p, &pfd[p]); + p++; + } + /* prepare c->sock (if not already handled above) */ + if (c->sock != -1 && c->rfd != c->sock) { + if (c->pollfd_offset == -1) + c->pollfd_offset = p; + pfd[p].fd = c->sock; + pfd[p].events = 0; + if ((c->io_want & SSH_CHAN_IO_SOCK_R) != 0) + pfd[p].events |= POLLIN; + if ((c->io_want & SSH_CHAN_IO_SOCK_W) != 0) + pfd[p].events |= POLLOUT; + dump_channel_poll(__func__, "sock", c, p, &pfd[p]); + p++; + } + *next_pollfd = p; +} + +/* * Allocate/prepare poll structure */ void -channel_prepare_select(struct ssh *ssh, fd_set **readsetp, fd_set **writesetp, - int *maxfdp, u_int *nallocp, time_t *minwait_secs) +channel_prepare_poll(struct ssh *ssh, struct pollfd **pfdp, u_int *npfd_allocp, + u_int *npfd_activep, u_int npfd_reserved, time_t *minwait_secs) { - u_int n, sz, nfdset; + struct ssh_channels *sc = ssh->chanctxt; + u_int i, oalloc, p, npfd = npfd_reserved; - channel_before_prepare_select(ssh); /* might update channel_max_fd */ + channel_before_prepare_io(ssh); /* might create a new channel */ - n = MAXIMUM(*maxfdp, ssh->chanctxt->channel_max_fd); + /* Allocate 4x pollfd for each channel (rfd, wfd, efd, sock) */ + if (sc->channels_alloc >= (INT_MAX / 4) - npfd_reserved) + fatal_f("too many channels"); /* shouldn't happen */ + if (!ssh_packet_is_rekeying(ssh)) + npfd += sc->channels_alloc * 4; + if (npfd > *npfd_allocp) { + *pfdp = xrecallocarray(*pfdp, *npfd_allocp, + npfd, sizeof(**pfdp)); + *npfd_allocp = npfd; + } + *npfd_activep = npfd_reserved; + if (ssh_packet_is_rekeying(ssh)) + return; - nfdset = howmany(n+1, NFDBITS); - /* Explicitly test here, because xrealloc isn't always called */ - if (nfdset && SIZE_MAX / nfdset < sizeof(fd_mask)) - fatal("channel_prepare_select: max_fd (%d) is too large", n); - sz = nfdset * sizeof(fd_mask); + oalloc = sc->channels_alloc; - /* perhaps check sz < nalloc/2 and shrink? */ - if (*readsetp == NULL || sz > *nallocp) { - *readsetp = xreallocarray(*readsetp, nfdset, sizeof(fd_mask)); - *writesetp = xreallocarray(*writesetp, nfdset, sizeof(fd_mask)); - *nallocp = sz; + channel_handler(ssh, CHAN_PRE, minwait_secs); + + if (oalloc != sc->channels_alloc) { + /* shouldn't happen */ + fatal_f("channels_alloc changed during CHAN_PRE " + "(was %u, now %u)", oalloc, sc->channels_alloc); } - *maxfdp = n; - memset(*readsetp, 0, sz); - memset(*writesetp, 0, sz); - if (!ssh_packet_is_rekeying(ssh)) - channel_handler(ssh, CHAN_PRE, *readsetp, *writesetp, - minwait_secs); + /* Prepare pollfd */ + p = npfd_reserved; + for (i = 0; i < sc->channels_alloc; i++) + channel_prepare_pollfd(sc->channels[i], &p, *pfdp, npfd); + *npfd_activep = p; +} + +static void +fd_ready(Channel *c, u_int p, struct pollfd *pfds, int fd, + const char *what, u_int revents_mask, u_int ready) +{ + struct pollfd *pfd = &pfds[p]; + + if (fd == -1) + return; + dump_channel_poll(__func__, what, c, p, pfd); + if (pfd->fd != fd) { + fatal("channel %d: inconsistent %s fd=%d pollfd[%u].fd %d " + "r%d w%d e%d s%d", c->self, what, fd, p, pfd->fd, + c->rfd, c->wfd, c->efd, c->sock); + } + if ((pfd->revents & POLLNVAL) != 0) { + fatal("channel %d: invalid %s pollfd[%u].fd %d r%d w%d e%d s%d", + c->self, what, p, pfd->fd, c->rfd, c->wfd, c->efd, c->sock); + } + if ((pfd->revents & (revents_mask|POLLHUP|POLLERR)) != 0) + c->io_ready |= ready & c->io_want; } /* - * After select, perform any appropriate operations for channels which have + * After poll, perform any appropriate operations for channels which have * events pending. */ void -channel_after_select(struct ssh *ssh, fd_set *readset, fd_set *writeset) +channel_after_poll(struct ssh *ssh, struct pollfd *pfd, u_int npfd) { - channel_handler(ssh, CHAN_POST, readset, writeset, NULL); + struct ssh_channels *sc = ssh->chanctxt; + u_int i, p; + Channel *c; + +#ifdef DEBUG_CHANNEL_POLL + for (p = 0; p < npfd; p++) { + if (pfd[p].revents == 0) + continue; + debug_f("pfd[%u].fd %d rev 0x%04x", + p, pfd[p].fd, pfd[p].revents); + } +#endif + + /* Convert pollfd into c->io_ready */ + for (i = 0; i < sc->channels_alloc; i++) { + c = sc->channels[i]; + if (c == NULL || c->pollfd_offset < 0) + continue; + if ((u_int)c->pollfd_offset >= npfd) { + /* shouldn't happen */ + fatal_f("channel %d: (before) bad pfd %u (max %u)", + c->self, c->pollfd_offset, npfd); + } + /* if rfd is shared with efd/sock then wfd should be too */ + if (c->rfd != -1 && c->wfd != -1 && c->rfd != c->wfd && + (c->rfd == c->efd || c->rfd == c->sock)) { + /* Shouldn't happen */ + fatal_f("channel %d: unexpected fds r%d w%d e%d s%d", + c->self, c->rfd, c->wfd, c->efd, c->sock); + } + c->io_ready = 0; + p = c->pollfd_offset; + /* rfd, potentially shared with wfd, efd and sock */ + if (c->rfd != -1) { + fd_ready(c, p, pfd, c->rfd, "rfd", POLLIN, + SSH_CHAN_IO_RFD); + if (c->rfd == c->wfd) { + fd_ready(c, p, pfd, c->wfd, "wfd/r", POLLOUT, + SSH_CHAN_IO_WFD); + } + if (c->rfd == c->efd) { + fd_ready(c, p, pfd, c->efd, "efdr/r", POLLIN, + SSH_CHAN_IO_EFD_R); + fd_ready(c, p, pfd, c->efd, "efdw/r", POLLOUT, + SSH_CHAN_IO_EFD_W); + } + if (c->rfd == c->sock) { + fd_ready(c, p, pfd, c->sock, "sockr/r", POLLIN, + SSH_CHAN_IO_SOCK_R); + fd_ready(c, p, pfd, c->sock, "sockw/r", POLLOUT, + SSH_CHAN_IO_SOCK_W); + } + p++; + } + /* wfd */ + if (c->wfd != -1 && c->wfd != c->rfd) { + fd_ready(c, p, pfd, c->wfd, "wfd", POLLOUT, + SSH_CHAN_IO_WFD); + p++; + } + /* efd */ + if (c->efd != -1 && c->efd != c->rfd) { + fd_ready(c, p, pfd, c->efd, "efdr", POLLIN, + SSH_CHAN_IO_EFD_R); + fd_ready(c, p, pfd, c->efd, "efdw", POLLOUT, + SSH_CHAN_IO_EFD_W); + p++; + } + /* sock */ + if (c->sock != -1 && c->sock != c->rfd) { + fd_ready(c, p, pfd, c->sock, "sockr", POLLIN, + SSH_CHAN_IO_SOCK_R); + fd_ready(c, p, pfd, c->sock, "sockw", POLLOUT, + SSH_CHAN_IO_SOCK_W); + p++; + } + + if (p > npfd) { + /* shouldn't happen */ + fatal_f("channel %d: (after) bad pfd %u (max %u)", + c->self, c->pollfd_offset, npfd); + } + } + channel_handler(ssh, CHAN_POST, NULL); } /* @@ -3421,7 +3675,6 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, } /* Start listening for connections on the socket. */ if (listen(sock, SSH_LISTEN_BACKLOG) == -1) { - error("listen: %.100s", strerror(errno)); error("listen [%s]:%s: %.100s", ntop, strport, strerror(errno)); close(sock); @@ -3985,7 +4238,7 @@ channel_request_rforward_cancel_streamlocal(struct ssh *ssh, const char *path) return 0; } - + /* * Request cancellation of remote forwarding of a connection from local side. */ diff --git a/channels.h b/channels.h index 378d987c6c0..82f33ba2ff1 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.137 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.141 2022/01/22 00:49:34 djm Exp $ */ /* * Author: Tatu Ylonen @@ -63,6 +63,16 @@ #define CHANNEL_CANCEL_PORT_STATIC -1 +/* nonblocking flags for channel_new */ +#define CHANNEL_NONBLOCK_LEAVE 0 /* don't modify non-blocking state */ +#define CHANNEL_NONBLOCK_SET 1 /* set non-blocking state */ +#define CHANNEL_NONBLOCK_STDIO 2 /* set non-blocking and restore on close */ + +/* c->restore_block mask flags */ +#define CHANNEL_RESTORE_RFD 0x01 +#define CHANNEL_RESTORE_WFD 0x02 +#define CHANNEL_RESTORE_EFD 0x04 + /* TCP forwarding */ #define FORWARD_DENY 0 #define FORWARD_REMOTE (1) @@ -126,6 +136,9 @@ struct Channel { int wfd; /* write fd */ int efd; /* extended fd */ int sock; /* sock fd */ + u_int io_want; /* bitmask of SSH_CHAN_IO_* */ + u_int io_ready; /* bitmask of SSH_CHAN_IO_* */ + int pollfd_offset; /* base offset into pollfd array (or -1) */ int ctl_chan; /* control channel (multiplexed connections) */ int isatty; /* rfd is a tty */ #ifdef _AIX @@ -134,11 +147,12 @@ struct Channel { int client_tty; /* (client) TTY has been requested */ int force_drain; /* force close on iEOF */ time_t notbefore; /* Pause IO until deadline (time_t) */ - int delayed; /* post-select handlers for newly created + int delayed; /* post-IO handlers for newly created * channels are delayed until the first call - * to a matching pre-select handler. - * this way post-select handlers are not + * to a matching pre-IO handler. + * this way post-IO handlers are not * accidentally called if a FD gets reused */ + int restore_block; /* fd mask to restore blocking status */ struct sshbuf *input; /* data read from socket, to be sent over * encrypted connection */ struct sshbuf *output; /* data received over encrypted connection for @@ -220,9 +234,22 @@ struct Channel { #define CHAN_EOF_RCVD 0x08 #define CHAN_LOCAL 0x10 +/* file descriptor events */ +#define SSH_CHAN_IO_RFD 0x01 +#define SSH_CHAN_IO_WFD 0x02 +#define SSH_CHAN_IO_EFD_R 0x04 +#define SSH_CHAN_IO_EFD_W 0x08 +#define SSH_CHAN_IO_EFD (SSH_CHAN_IO_EFD_R|SSH_CHAN_IO_EFD_W) +#define SSH_CHAN_IO_SOCK_R 0x10 +#define SSH_CHAN_IO_SOCK_W 0x20 +#define SSH_CHAN_IO_SOCK (SSH_CHAN_IO_SOCK_R|SSH_CHAN_IO_SOCK_W) + /* Read buffer size */ #define CHAN_RBUF (16*1024) +/* Maximum size for direct reads to buffers */ +#define CHANNEL_MAX_READ CHAN_SES_PACKET_DEFAULT + /* Maximum channel input buffer size */ #define CHAN_INPUT_MAX (16*1024*1024) @@ -266,7 +293,7 @@ void channel_register_filter(struct ssh *, int, channel_infilter_fn *, void channel_register_status_confirm(struct ssh *, int, channel_confirm_cb *, channel_confirm_abandon_cb *, void *); void channel_cancel_cleanup(struct ssh *, int); -int channel_close_fd(struct ssh *, int *); +int channel_close_fd(struct ssh *, Channel *, int *); void channel_send_window_changes(struct ssh *); /* mux proxy support */ @@ -287,10 +314,11 @@ int channel_input_window_adjust(int, u_int32_t, struct ssh *); int channel_input_status_confirm(int, u_int32_t, struct ssh *); /* file descriptor handling (read/write) */ +struct pollfd; -void channel_prepare_select(struct ssh *, fd_set **, fd_set **, int *, - u_int*, time_t*); -void channel_after_select(struct ssh *, fd_set *, fd_set *); +void channel_prepare_poll(struct ssh *, struct pollfd **, + u_int *, u_int *, u_int, time_t *); +void channel_after_poll(struct ssh *, struct pollfd *, u_int); void channel_output_poll(struct ssh *); int channel_not_very_much_buffered_data(struct ssh *); @@ -313,7 +341,7 @@ Channel *channel_connect_to_port(struct ssh *, const char *, u_short, char *, char *, int *, const char **); Channel *channel_connect_to_path(struct ssh *, const char *, char *, char *); Channel *channel_connect_stdio_fwd(struct ssh *, const char*, - u_short, int, int); + u_short, int, int, int); Channel *channel_connect_by_listen_address(struct ssh *, const char *, u_short, char *, char *); Channel *channel_connect_by_listen_path(struct ssh *, const char *, diff --git a/clientloop.c b/clientloop.c index cb3ff864527..f8350e67224 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.359 2021/03/19 02:22:34 djm Exp $ */ +/* $OpenBSD: clientloop.c,v 1.378 2022/01/22 00:49:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -76,6 +76,9 @@ #ifdef HAVE_PATHS_H #include #endif +#ifdef HAVE_POLL_H +#include +#endif #include #include #include @@ -112,18 +115,12 @@ #include "ssherr.h" #include "hostfile.h" +/* Permitted RSA signature algorithms for UpdateHostkeys proofs */ +#define HOSTKEY_PROOF_RSA_ALGS "rsa-sha2-512,rsa-sha2-256" + /* import options */ extern Options options; -/* Flag indicating that stdin should be redirected from /dev/null. */ -extern int stdin_null_flag; - -/* Flag indicating that no shell has been requested */ -extern int no_shell_flag; - -/* Flag indicating that ssh should daemonise after authentication is complete */ -extern int fork_after_authentication_flag; - /* Control socket */ extern int muxserver_sock; /* XXX use mux_client_cleanup() instead */ @@ -193,6 +190,24 @@ static struct global_confirms global_confirms = TAILQ_HEAD_INITIALIZER(global_confirms); void ssh_process_session2_setup(int, int, int, struct sshbuf *); +static void quit_message(const char *fmt, ...) + __attribute__((__format__ (printf, 1, 2))); + +static void +quit_message(const char *fmt, ...) +{ + char *msg; + va_list args; + int r; + + va_start(args, fmt); + xvasprintf(&msg, fmt, args); + va_end(args); + + if ((r = sshbuf_putf(stderr_buffer, "%s\r\n", msg)) != 0) + fatal_fr(r, "sshbuf_putf"); + quit_pending = 1; +} /* * Signal handler for the window change signal (SIGWINCH). This just sets a @@ -497,37 +512,41 @@ server_alive_check(struct ssh *ssh) * one of the file descriptors). */ static void -client_wait_until_can_do_something(struct ssh *ssh, - fd_set **readsetp, fd_set **writesetp, - int *maxfdp, u_int *nallocp, int rekeying) +client_wait_until_can_do_something(struct ssh *ssh, struct pollfd **pfdp, + u_int *npfd_allocp, u_int *npfd_activep, int rekeying, + int *conn_in_readyp, int *conn_out_readyp) { - struct timeval tv, *tvp; - int timeout_secs; + int timeout_secs, pollwait; time_t minwait_secs = 0, now = monotime(); - int r, ret; + int ret; + u_int p; + + *conn_in_readyp = *conn_out_readyp = 0; - /* Add any selections by the channel mechanism. */ - channel_prepare_select(ssh, readsetp, writesetp, maxfdp, - nallocp, &minwait_secs); + /* Prepare channel poll. First two pollfd entries are reserved */ + channel_prepare_poll(ssh, pfdp, npfd_allocp, npfd_activep, 2, + &minwait_secs); + if (*npfd_activep < 2) + fatal_f("bad npfd %u", *npfd_activep); /* shouldn't happen */ - /* channel_prepare_select could have closed the last channel */ + /* channel_prepare_poll could have closed the last channel */ if (session_closed && !channel_still_open(ssh) && !ssh_packet_have_data_to_write(ssh)) { - /* clear mask since we did not call select() */ - memset(*readsetp, 0, *nallocp); - memset(*writesetp, 0, *nallocp); + /* clear events since we did not call poll() */ + for (p = 0; p < *npfd_activep; p++) + (*pfdp)[p].revents = 0; return; } - FD_SET(connection_in, *readsetp); - - /* Select server connection if have data to write to the server. */ - if (ssh_packet_have_data_to_write(ssh)) - FD_SET(connection_out, *writesetp); + /* Monitor server connection on reserved pollfd entries */ + (*pfdp)[0].fd = connection_in; + (*pfdp)[0].events = POLLIN; + (*pfdp)[1].fd = connection_out; + (*pfdp)[1].events = ssh_packet_have_data_to_write(ssh) ? POLLOUT : 0; /* * Wait for something to happen. This will suspend the process until - * some selected descriptor can be read, written, or has some other + * some polled descriptor can be read, written, or has some other * event pending, or a timeout expires. */ @@ -547,37 +566,41 @@ client_wait_until_can_do_something(struct ssh *ssh, if (minwait_secs != 0) timeout_secs = MINIMUM(timeout_secs, (int)minwait_secs); if (timeout_secs == INT_MAX) - tvp = NULL; - else { - tv.tv_sec = timeout_secs; - tv.tv_usec = 0; - tvp = &tv; - } + pollwait = -1; + else if (timeout_secs >= INT_MAX / 1000) + pollwait = INT_MAX; + else + pollwait = timeout_secs * 1000; + + ret = poll(*pfdp, *npfd_activep, pollwait); - ret = select((*maxfdp)+1, *readsetp, *writesetp, NULL, tvp); if (ret == -1) { /* - * We have to clear the select masks, because we return. + * We have to clear the events because we return. * We have to return, because the mainloop checks for the flags * set by the signal handlers. */ - memset(*readsetp, 0, *nallocp); - memset(*writesetp, 0, *nallocp); + for (p = 0; p < *npfd_activep; p++) + (*pfdp)[p].revents = 0; if (errno == EINTR) return; /* Note: we might still have data in the buffers. */ - if ((r = sshbuf_putf(stderr_buffer, - "select: %s\r\n", strerror(errno))) != 0) - fatal_fr(r, "sshbuf_putf"); - quit_pending = 1; - } else if (options.server_alive_interval > 0 && !FD_ISSET(connection_in, - *readsetp) && monotime() >= server_alive_time) + quit_message("poll: %s", strerror(errno)); + return; + } + + *conn_in_readyp = (*pfdp)[0].revents != 0; + *conn_out_readyp = (*pfdp)[1].revents != 0; + + if (options.server_alive_interval > 0 && !*conn_in_readyp && + monotime() >= server_alive_time) { /* - * ServerAlive check is needed. We can't rely on the select + * ServerAlive check is needed. We can't rely on the poll * timing out since traffic on the client side such as port * forwards can keep waking it up. */ server_alive_check(ssh); + } } static void @@ -607,53 +630,27 @@ client_suspend_self(struct sshbuf *bin, struct sshbuf *bout, struct sshbuf *berr } static void -client_process_net_input(struct ssh *ssh, fd_set *readset) +client_process_net_input(struct ssh *ssh) { - char buf[SSH_IOBUFSZ]; - int r, len; + int r; /* * Read input from the server, and add any such data to the buffer of * the packet subsystem. */ - if (FD_ISSET(connection_in, readset)) { - schedule_server_alive_check(); - /* Read as much as possible. */ - len = read(connection_in, buf, sizeof(buf)); - if (len == 0) { - /* - * Received EOF. The remote host has closed the - * connection. - */ - if ((r = sshbuf_putf(stderr_buffer, - "Connection to %.300s closed by remote host.\r\n", - host)) != 0) - fatal_fr(r, "sshbuf_putf"); - quit_pending = 1; + schedule_server_alive_check(); + if ((r = ssh_packet_process_read(ssh, connection_in)) == 0) + return; /* success */ + if (r == SSH_ERR_SYSTEM_ERROR) { + if (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK) return; - } - /* - * There is a kernel bug on Solaris that causes select to - * sometimes wake up even though there is no data available. - */ - if (len == -1 && - (errno == EAGAIN || errno == EINTR || errno == EWOULDBLOCK)) - len = 0; - - if (len == -1) { - /* - * An error has encountered. Perhaps there is a - * network problem. - */ - if ((r = sshbuf_putf(stderr_buffer, - "Read from remote host %.300s: %.100s\r\n", - host, strerror(errno))) != 0) - fatal_fr(r, "sshbuf_putf"); - quit_pending = 1; + if (errno == EPIPE) { + quit_message("Connection to %s closed by remote host.", + host); return; } - ssh_packet_process_incoming(ssh, buf, len); } + quit_message("Read from remote host %s: %s", host, ssh_err(r)); } static void @@ -696,6 +693,8 @@ client_status_confirm(struct ssh *ssh, int type, Channel *c, void *ctx) * their stderr. */ if (tochan) { + debug3_f("channel %d: mux request: %s", c->self, + cr->request_type); if ((r = sshbuf_put(c->extended, errmsg, strlen(errmsg))) != 0) fatal_fr(r, "sshbuf_put"); @@ -1216,11 +1215,12 @@ int client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, int ssh2_chan_id) { - fd_set *readset = NULL, *writeset = NULL; + struct pollfd *pfd = NULL; + u_int npfd_alloc = 0, npfd_active = 0; double start_time, total_time; - int r, max_fd = 0, max_fd2 = 0, len; + int r, len; u_int64_t ibytes, obytes; - u_int nalloc = 0; + int conn_in_ready, conn_out_ready; debug("Entering interactive session."); @@ -1238,13 +1238,13 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, fatal_f("pledge(): %s", strerror(errno)); } else if (options.update_hostkeys) { - debug("pledge: filesystem full"); + debug("pledge: filesystem"); if (pledge("stdio rpath wpath cpath unix inet dns proc tty", NULL) == -1) fatal_f("pledge(): %s", strerror(errno)); } else if (!option_clear_or_none(options.proxy_command) || - fork_after_authentication_flag) { + options.fork_after_authentication) { debug("pledge: proc"); if (pledge("stdio cpath unix inet dns proc tty", NULL) == -1) fatal_f("pledge(): %s", strerror(errno)); @@ -1262,7 +1262,6 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, exit_status = -1; connection_in = ssh_packet_get_connection_in(ssh); connection_out = ssh_packet_get_connection_out(ssh); - max_fd = MAXIMUM(connection_in, connection_out); quit_pending = 0; @@ -1342,28 +1341,33 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, * Wait until we have something to do (something becomes * available on one of the descriptors). */ - max_fd2 = max_fd; - client_wait_until_can_do_something(ssh, &readset, &writeset, - &max_fd2, &nalloc, ssh_packet_is_rekeying(ssh)); + client_wait_until_can_do_something(ssh, &pfd, &npfd_alloc, + &npfd_active, ssh_packet_is_rekeying(ssh), + &conn_in_ready, &conn_out_ready); if (quit_pending) break; /* Do channel operations unless rekeying in progress. */ if (!ssh_packet_is_rekeying(ssh)) - channel_after_select(ssh, readset, writeset); + channel_after_poll(ssh, pfd, npfd_active); /* Buffer input from the connection. */ - client_process_net_input(ssh, readset); + if (conn_in_ready) + client_process_net_input(ssh); if (quit_pending) break; + /* A timeout may have triggered rekeying */ + if ((r = ssh_packet_check_rekey(ssh)) != 0) + fatal_fr(r, "cannot start rekeying"); + /* * Send as much buffered packet data as possible to the * sender. */ - if (FD_ISSET(connection_out, writeset)) { + if (conn_out_ready) { if ((r = ssh_packet_write_poll(ssh)) != 0) { sshpkt_fatal(ssh, r, "%s: ssh_packet_write_poll", __func__); @@ -1382,8 +1386,7 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, } } } - free(readset); - free(writeset); + free(pfd); /* Terminate the session. */ @@ -1403,20 +1406,13 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, if (have_pty) leave_raw_mode(options.request_tty == REQUEST_TTY_FORCE); - /* restore blocking io */ - if (!isatty(fileno(stdin))) - unset_nonblock(fileno(stdin)); - if (!isatty(fileno(stdout))) - unset_nonblock(fileno(stdout)); - if (!isatty(fileno(stderr))) - unset_nonblock(fileno(stderr)); - /* * If there was no shell or command requested, there will be no remote * exit status to be returned. In that case, clear error code if the * connection was deliberately terminated at this end. */ - if (no_shell_flag && received_signal == SIGTERM) { + if (options.session_type == SESSION_TYPE_NONE && + received_signal == SIGTERM) { received_signal = 0; exit_status = 0; } @@ -1430,11 +1426,8 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, * In interactive mode (with pseudo tty) display a message indicating * that the connection has been closed. */ - if (have_pty && options.log_level != SYSLOG_LEVEL_QUIET) { - if ((r = sshbuf_putf(stderr_buffer, - "Connection to %.64s closed.\r\n", host)) != 0) - fatal_fr(r, "sshbuf_putf"); - } + if (have_pty && options.log_level >= SYSLOG_LEVEL_INFO) + quit_message("Connection to %s closed.", host); /* Output any buffered data for stderr. */ if (sshbuf_len(stderr_buffer) > 0) { @@ -1607,6 +1600,12 @@ client_request_agent(struct ssh *ssh, const char *request_type, int rchan) debug_fr(r, "ssh_get_authentication_socket"); return NULL; } + if ((r = ssh_agent_bind_hostkey(sock, ssh->kex->initial_hostkey, + ssh->kex->session_id, ssh->kex->initial_sig, 1)) == 0) + debug_f("bound agent to hostkey"); + else + debug2_fr(r, "ssh_agent_bind_hostkey"); + c = channel_new(ssh, "authentication agent connection", SSH_CHANNEL_OPEN, sock, sock, -1, CHAN_X11_WINDOW_DEFAULT, CHAN_TCP_PACKET_DEFAULT, 0, @@ -1958,7 +1957,7 @@ hostkeys_check_old(struct hostkey_foreach_line *l, void *_ctx) if (!sshkey_equal(l->key, ctx->old_keys[i])) continue; debug3_f("found deprecated %s key at %s:%ld as %s", - sshkey_ssh_name(ctx->keys[i]), l->path, l->linenum, + sshkey_ssh_name(ctx->old_keys[i]), l->path, l->linenum, hashed ? "[HASHED]" : l->hosts); ctx->old_key_seen = 1; break; @@ -2108,8 +2107,10 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, struct hostkeys_update_ctx *ctx = (struct hostkeys_update_ctx *)_ctx; size_t i, ndone; struct sshbuf *signdata; - int r, kexsigtype, use_kexsigtype; + int r, plaintype; const u_char *sig; + const char *rsa_kexalg = NULL; + char *alg = NULL; size_t siglen; if (ctx->nnew == 0) @@ -2120,9 +2121,9 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, hostkeys_update_ctx_free(ctx); return; } - kexsigtype = sshkey_type_plain( - sshkey_type_from_name(ssh->kex->hostkey_alg)); - + if (sshkey_type_plain(sshkey_type_from_name( + ssh->kex->hostkey_alg)) == KEY_RSA) + rsa_kexalg = ssh->kex->hostkey_alg; if ((signdata = sshbuf_new()) == NULL) fatal_f("sshbuf_new failed"); /* @@ -2133,6 +2134,7 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, for (ndone = i = 0; i < ctx->nkeys; i++) { if (ctx->keys_match[i]) continue; + plaintype = sshkey_type_plain(ctx->keys[i]->type); /* Prepare data to be signed: session ID, unique string, key */ sshbuf_reset(signdata); if ( (r = sshbuf_put_cstring(signdata, @@ -2146,17 +2148,34 @@ client_global_hostkeys_private_confirm(struct ssh *ssh, int type, error_fr(r, "parse sig"); goto out; } + if ((r = sshkey_get_sigtype(sig, siglen, &alg)) != 0) { + error_fr(r, "server gave unintelligible signature " + "for %s key %zu", sshkey_type(ctx->keys[i]), i); + goto out; + } /* - * For RSA keys, prefer to use the signature type negotiated - * during KEX to the default (SHA1). + * Special case for RSA keys: if a RSA hostkey was negotiated, + * then use its signature type for verification of RSA hostkey + * proofs. Otherwise, accept only RSA-SHA256/512 signatures. */ - use_kexsigtype = kexsigtype == KEY_RSA && - sshkey_type_plain(ctx->keys[i]->type) == KEY_RSA; + if (plaintype == KEY_RSA && rsa_kexalg == NULL && + match_pattern_list(alg, HOSTKEY_PROOF_RSA_ALGS, 0) != 1) { + debug_f("server used untrusted RSA signature algorithm " + "%s for key %zu, disregarding", alg, i); + free(alg); + /* zap the key from the list */ + sshkey_free(ctx->keys[i]); + ctx->keys[i] = NULL; + ndone++; + continue; + } + debug3_f("verify %s key %zu using sigalg %s", + sshkey_type(ctx->keys[i]), i, alg); + free(alg); if ((r = sshkey_verify(ctx->keys[i], sig, siglen, sshbuf_ptr(signdata), sshbuf_len(signdata), - use_kexsigtype ? ssh->kex->hostkey_alg : NULL, 0, - NULL)) != 0) { - error_f("server gave bad signature for %s key %zu", + plaintype == KEY_RSA ? rsa_kexalg : NULL, 0, NULL)) != 0) { + error_fr(r, "server gave bad signature for %s key %zu", sshkey_type(ctx->keys[i]), i); goto out; } @@ -2588,7 +2607,7 @@ client_stop_mux(void) * If we are in persist mode, or don't have a shell, signal that we * should close when all active channels are closed. */ - if (options.control_persist || no_shell_flag) { + if (options.control_persist || options.session_type == SESSION_TYPE_NONE) { session_closed = 1; setproctitle("[stopped mux]"); } diff --git a/compat.c b/compat.c index 69befa96f05..0dbea68c625 100644 --- a/compat.c +++ b/compat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.c,v 1.117 2021/01/27 09:26:54 djm Exp $ */ +/* $OpenBSD: compat.c,v 1.119 2021/09/10 05:46:09 djm Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -63,11 +63,12 @@ compat_banner(struct ssh *ssh, const char *version) { "OpenSSH_6.5*," "OpenSSH_6.6*", SSH_NEW_OPENSSH|SSH_BUG_CURVE25519PAD| SSH_BUG_SIGTYPE}, + { "OpenSSH_7.4*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE| + SSH_BUG_SIGTYPE74}, { "OpenSSH_7.0*," "OpenSSH_7.1*," "OpenSSH_7.2*," "OpenSSH_7.3*," - "OpenSSH_7.4*," "OpenSSH_7.5*," "OpenSSH_7.6*," "OpenSSH_7.7*", SSH_NEW_OPENSSH|SSH_BUG_SIGTYPE}, diff --git a/compat.h b/compat.h index c197fafc539..167409b2bd3 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.h,v 1.56 2021/01/27 09:26:54 djm Exp $ */ +/* $OpenBSD: compat.h,v 1.57 2021/06/06 03:40:39 djm Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. @@ -29,7 +29,7 @@ #define SSH_BUG_UTF8TTYMODE 0x00000001 #define SSH_BUG_SIGTYPE 0x00000002 -/* #define unused 0x00000004 */ +#define SSH_BUG_SIGTYPE74 0x00000004 /* #define unused 0x00000008 */ #define SSH_OLD_SESSIONID 0x00000010 /* #define unused 0x00000020 */ diff --git a/configure.ac b/configure.ac index 912543d2914..e911d652dea 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ AC_CONFIG_SRCDIR([ssh.c]) AC_LANG([C]) AC_CONFIG_HEADERS([config.h]) -AC_PROG_CC([cc gcc]) +AC_PROG_CC([cc gcc clang]) # XXX relax this after reimplementing logit() etc. AC_MSG_CHECKING([if $CC supports C99-style variadic macros]) @@ -176,6 +176,8 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then OSSH_CHECK_CFLAG_COMPILE([-Wunused-parameter], [-Wno-unused-parameter]) OSSH_CHECK_CFLAG_COMPILE([-Wunused-result], [-Wno-unused-result]) OSSH_CHECK_CFLAG_COMPILE([-Wimplicit-fallthrough]) + OSSH_CHECK_CFLAG_COMPILE([-Wmisleading-indentation]) + OSSH_CHECK_CFLAG_COMPILE([-Wbitwise-instead-of-logical]) OSSH_CHECK_CFLAG_COMPILE([-fno-strict-aliasing]) if test "x$use_toolchain_hardening" = "x1"; then OSSH_CHECK_CFLAG_COMPILE([-mretpoline]) # clang @@ -190,6 +192,8 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then # actually links. The test program compiled/linked includes a number # of integer operations that should exercise this. OSSH_CHECK_CFLAG_LINK([-ftrapv]) + OSSH_CHECK_CFLAG_COMPILE([-fzero-call-used-regs=all]) + OSSH_CHECK_CFLAG_COMPILE([-ftrivial-auto-var-init=zero]) fi AC_MSG_CHECKING([gcc version]) GCC_VER=`$CC -v 2>&1 | $AWK '/gcc version /{print $3}'` @@ -307,6 +311,16 @@ AC_COMPILE_IFELSE( [ AC_MSG_RESULT([no]) ] ) +AC_MSG_CHECKING([if compiler accepts variable declarations after code]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include ]], + [[ int a; a = 1; int b = 1; exit(a-b); ]])], + [ AC_MSG_RESULT([yes]) + AC_DEFINE(VARIABLE_DECLARATION_AFTER_CODE, [1], + [compiler variable declarations after code]) ], + [ AC_MSG_RESULT([no]) ] +) + if test "x$no_attrib_nonnull" != "x1" ; then AC_DEFINE([HAVE_ATTRIBUTE__NONNULL__], [1], [Have attribute nonnull]) fi @@ -442,8 +456,10 @@ AC_CHECK_HEADERS([ \ sys/mman.h \ sys/label.h \ sys/ndir.h \ + sys/param.h \ sys/poll.h \ sys/prctl.h \ + sys/procctl.h \ sys/pstat.h \ sys/ptrace.h \ sys/random.h \ @@ -716,6 +732,10 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) # proc_pidinfo()-based closefrom() replacement. AC_CHECK_HEADERS([libproc.h]) AC_CHECK_FUNCS([proc_pidinfo]) + # poll(2) is broken for character-special devices (at least). + # cf. Apple bug 3710161 (not public, but searchable) + AC_DEFINE([BROKEN_POLL], [1], + [System poll(2) implementation is broken]) ;; *-*-dragonfly*) SSHDLIBS="$SSHDLIBS -lcrypt" @@ -750,6 +770,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) if test -z "$GCC"; then CFLAGS="$CFLAGS -Ae" fi + AC_DEFINE([BROKEN_GETLINE], [1], [getline is not what we expect]) ;; *-*-hpux11*) AC_DEFINE([PAM_SUN_CODEBASE], [1], @@ -823,6 +844,7 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) dnl Target SUSv3/POSIX.1-2001 plus BSD specifics. dnl _DEFAULT_SOURCE is the new name for _BSD_SOURCE CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -D_DEFAULT_SOURCE" + AC_DEFINE([BROKEN_CLOSEFROM], [1], [broken in chroots on older kernels]) AC_DEFINE([PAM_TTY_KLUDGE], [1], [Work around problematic Linux PAM modules handling of PAM_TTY]) AC_DEFINE([LOCKED_PASSWD_PREFIX], ["!"], @@ -946,6 +968,12 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) AC_MSG_RESULT([architecture not supported]) fi ;; +*-*-minix) + AC_DEFINE([SETEUID_BREAKS_SETUID]) + # poll(2) seems to choke on /dev/null; "Bad file descriptor" + AC_DEFINE([BROKEN_POLL], [1], + [System poll(2) implementation is broken]) + ;; mips-sony-bsd|mips-sony-newsos4) AC_DEFINE([NEED_SETPGRP], [1], [Need setpgrp to acquire controlling tty]) SONY=1 @@ -977,6 +1005,11 @@ mips-sony-bsd|mips-sony-newsos4) # and will crash if they cannot be opened. AC_DEFINE([SANDBOX_SKIP_RLIMIT_NOFILE], [1], [define if setrlimit RLIMIT_NOFILE breaks things]) + case "$host" in + *-*-freebsd9.*|*-*-freebsd10.*) + # Capsicum on 9 and 10 do not allow ppoll() so don't auto-enable. + disable_capsicum=yes + esac ;; *-*-bsdi*) AC_DEFINE([SETEUID_BREAKS_SETUID]) @@ -1804,6 +1837,7 @@ AC_CHECK_FUNCS([ \ cap_rights_limit \ clock \ closefrom \ + close_range \ dirfd \ endgrent \ err \ @@ -1846,7 +1880,6 @@ AC_CHECK_FUNCS([ \ localtime_r \ login_getcapbool \ login_getpwclass \ - md5_crypt \ memmem \ memmove \ memset_s \ @@ -1857,7 +1890,10 @@ AC_CHECK_FUNCS([ \ openlog_r \ pledge \ poll \ + ppoll \ prctl \ + procctl \ + pselect \ pstat \ raise \ readpassphrase \ @@ -2607,23 +2643,17 @@ AC_ARG_WITH([ssl-dir], ./*|../*) withval="`pwd`/$withval" esac if test -d "$withval/lib"; then - if test -n "${rpath_opt}"; then - LDFLAGS="-L${withval}/lib ${rpath_opt}${withval}/lib ${LDFLAGS}" - else - LDFLAGS="-L${withval}/lib ${LDFLAGS}" - fi + libcrypto_path="${withval}/lib" elif test -d "$withval/lib64"; then - if test -n "${rpath_opt}"; then - LDFLAGS="-L${withval}/lib64 ${rpath_opt}${withval}/lib64 ${LDFLAGS}" - else - LDFLAGS="-L${withval}/lib64 ${LDFLAGS}" - fi + libcrypto_path="$withval/lib64" else - if test -n "${rpath_opt}"; then - LDFLAGS="-L${withval} ${rpath_opt}${withval} ${LDFLAGS}" - else - LDFLAGS="-L${withval} ${LDFLAGS}" - fi + # Built but not installed + libcrypto_path="${withval}" + fi + if test -n "${rpath_opt}"; then + LDFLAGS="-L${libcrypto_path} ${rpath_opt}${libcrypto_path} ${LDFLAGS}" + else + LDFLAGS="-L${libcrypto_path} ${LDFLAGS}" fi if test -d "$withval/include"; then CPPFLAGS="-I${withval}/include ${CPPFLAGS}" @@ -2750,7 +2780,8 @@ if test "x$openssl" = "xyes" ; then ;; 101*) ;; # 1.1.x 200*) ;; # LibreSSL - 300*) ;; # OpenSSL development branch. + 300*) ;; # OpenSSL 3 + 301*) ;; # OpenSSL development branch. *) AC_MSG_ERROR([Unknown/unsupported OpenSSL version ("$ssl_library_ver")]) ;; @@ -3089,9 +3120,6 @@ if test "x$openssl" = "xyes" ; then AC_MSG_RESULT([no]) ) - COMMENT_OUT_ECC="#no ecc#" - TEST_SSH_ECC=no - if test x$enable_nistp256 = x1 || test x$enable_nistp384 = x1 || \ test x$enable_nistp521 = x1; then AC_DEFINE(OPENSSL_HAS_ECC, [1], [OpenSSL has ECC]) @@ -3103,8 +3131,6 @@ if test "x$openssl" = "xyes" ; then if test x$enable_nistp256 = x1; then AC_DEFINE([OPENSSL_HAS_NISTP256], [1], [libcrypto has NID_X9_62_prime256v1]) - TEST_SSH_ECC=yes - COMMENT_OUT_ECC="" else unsupported_algorithms="$unsupported_algorithms \ ecdsa-sha2-nistp256 \ @@ -3113,8 +3139,6 @@ if test "x$openssl" = "xyes" ; then fi if test x$enable_nistp384 = x1; then AC_DEFINE([OPENSSL_HAS_NISTP384], [1], [libcrypto has NID_secp384r1]) - TEST_SSH_ECC=yes - COMMENT_OUT_ECC="" else unsupported_algorithms="$unsupported_algorithms \ ecdsa-sha2-nistp384 \ @@ -3123,8 +3147,6 @@ if test "x$openssl" = "xyes" ; then fi if test x$enable_nistp521 = x1; then AC_DEFINE([OPENSSL_HAS_NISTP521], [1], [libcrypto has NID_secp521r1]) - TEST_SSH_ECC=yes - COMMENT_OUT_ECC="" else unsupported_algorithms="$unsupported_algorithms \ ecdh-sha2-nistp521 \ @@ -3132,8 +3154,6 @@ if test "x$openssl" = "xyes" ; then ecdsa-sha2-nistp521-cert-v01@openssh.com" fi - AC_SUBST([TEST_SSH_ECC]) - AC_SUBST([COMMENT_OUT_ECC]) else AC_CHECK_LIB([crypt], [crypt], [LIBS="$LIBS -lcrypt"]) AC_CHECK_FUNCS([crypt]) @@ -3144,10 +3164,6 @@ enable_pkcs11=yes enable_sk=yes if test "x$openssl" != "xyes" ; then enable_pkcs11="disabled; missing libcrypto" - enable_sk="disabled; missing libcrypto" -fi -if test "x$openssl_ecc" != "xyes" ; then - enable_sk="disabled; OpenSSL has no ECC support" fi if test "x$ac_cv_func_dlopen" != "xyes" ; then enable_pkcs11="disabled; missing dlopen(3)" @@ -3212,8 +3228,10 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" = "xyes" ; then saved_LIBS="$LIBS" LIBS="$LIBS $LIBFIDO2" AC_CHECK_FUNCS([ \ + fido_assert_set_clientdata \ fido_cred_prot \ fido_cred_set_prot \ + fido_cred_set_clientdata \ fido_dev_get_touch_begin \ fido_dev_get_touch_status \ fido_dev_supports_cred_prot \ @@ -3500,10 +3518,11 @@ AC_ARG_WITH([sandbox], ] ) -# Some platforms (seems to be the ones that have a kernel poll(2)-type -# function with which they implement select(2)) use an extra file descriptor -# when calling select(2), which means we can't use the rlimit sandbox. -AC_MSG_CHECKING([if select works with descriptor rlimit]) +# POSIX specifies that poll() "shall fail with EINVAL if the nfds argument +# is greater than OPEN_MAX". On some platforms that includes implementions +# ofselect in userspace on top of poll() so check both work with rlimit NOFILES +# so check that both work before enabling the rlimit sandbox. +AC_MSG_CHECKING([if select and/or poll works with descriptor rlimit]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include @@ -3514,6 +3533,11 @@ AC_RUN_IFELSE( #ifdef HAVE_SYS_SELECT_H # include #endif +#ifdef HAVE_POLL_H +# include +#elif HAVE_SYS_POLL_H +# include +#endif #include #include #include @@ -3522,6 +3546,9 @@ AC_RUN_IFELSE( int fd, r; fd_set fds; struct timeval tv; +#ifdef HAVE_POLL + struct pollfd pfd; +#endif fd = open("/dev/null", O_RDONLY); FD_ZERO(&fds); @@ -3532,7 +3559,16 @@ AC_RUN_IFELSE( tv.tv_sec = 1; tv.tv_usec = 0; r = select(fd+1, &fds, NULL, NULL, &tv); - exit (r == -1 ? 1 : 0); + if (r == -1) + exit(1); +#ifdef HAVE_POLL + pfd.fd = fd; + pfd.events = POLLIN; + r = poll(&pfd, 1, 1); + if (r == -1) + exit(2); +#endif + exit(0); ]])], [AC_MSG_RESULT([yes]) select_works_with_rlimit=yes], @@ -3542,6 +3578,26 @@ AC_RUN_IFELSE( select_works_with_rlimit=yes] ) +AC_CHECK_MEMBERS([struct pollfd.fd], [], [], [[ +#include +#ifdef HAVE_POLL_H +#include +#endif +#ifdef HAVE_SYS_POLL_H +#include +#endif +]]) + +AC_CHECK_TYPES([nfds_t], , , [ +#include +#ifdef HAVE_POLL_H +#include +#endif +#ifdef HAVE_SYS_POLL_H +#include +#endif +]) + AC_MSG_CHECKING([if setrlimit(RLIMIT_NOFILE,{0,0}) works]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ @@ -3628,6 +3684,7 @@ elif test "x$sandbox_arg" = "xseccomp_filter" || \ AC_DEFINE([SANDBOX_SECCOMP_FILTER], [1], [Sandbox using seccomp filter]) elif test "x$sandbox_arg" = "xcapsicum" || \ ( test -z "$sandbox_arg" && \ + test "x$disable_capsicum" != "xyes" && \ test "x$ac_cv_header_sys_capsicum_h" = "xyes" && \ test "x$ac_cv_func_cap_rights_limit" = "xyes") ; then test "x$ac_cv_header_sys_capsicum_h" != "xyes" && \ @@ -3735,7 +3792,7 @@ if test ! -z "$SONY" ; then LIBS="$LIBS -liberty"; fi -# Check for long long datatypes +# Check for long long datatypes AC_CHECK_TYPES([long long, unsigned long long, long double]) # Check datatype sizes @@ -3743,6 +3800,16 @@ AC_CHECK_SIZEOF([short int]) AC_CHECK_SIZEOF([int]) AC_CHECK_SIZEOF([long int]) AC_CHECK_SIZEOF([long long int]) +AC_CHECK_SIZEOF([time_t], [], [[ + #include + #ifdef HAVE_SYS_TIME_H + # include + #endif + #ifdef HAVE_TIME_H + # include + #endif + ]] +) # Sanity check long long for some platforms (AIX) if test "x$ac_cv_sizeof_long_long_int" = "x4" ; then @@ -4044,7 +4111,7 @@ AC_CHECK_TYPES([intmax_t, uintmax_t], , , [ TYPE_SOCKLEN_T -AC_CHECK_TYPES([sig_atomic_t], , , [#include ]) +AC_CHECK_TYPES([sig_atomic_t, sighandler_t], , , [#include ]) AC_CHECK_TYPES([fsblkcnt_t, fsfilcnt_t], , , [ #include #ifdef HAVE_SYS_BITYPES_H @@ -4651,22 +4718,30 @@ AC_ARG_WITH([kerberos5], AC_DEFINE([KRB5], [1], [Define if you want Kerberos 5 support]) KRB5_MSG="yes" - AC_PATH_TOOL([KRB5CONF], [krb5-config], - [$KRB5ROOT/bin/krb5-config], - [$KRB5ROOT/bin:$PATH]) - if test -x $KRB5CONF ; then - K5CFLAGS="`$KRB5CONF --cflags`" - K5LIBS="`$KRB5CONF --libs`" + AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no]) + use_pkgconfig_for_krb5= + if test "x$PKGCONFIG" != "xno"; then + AC_MSG_CHECKING([if $PKGCONFIG knows about kerberos5]) + if "$PKGCONFIG" krb5; then + AC_MSG_RESULT([yes]) + use_pkgconfig_for_krb5=yes + else + AC_MSG_RESULT([no]) + fi + fi + if test "x$use_pkgconfig_for_krb5" = "xyes"; then + K5CFLAGS=`$PKGCONFIG --cflags krb5` + K5LIBS=`$PKGCONFIG --libs krb5` CPPFLAGS="$CPPFLAGS $K5CFLAGS" AC_MSG_CHECKING([for gssapi support]) - if $KRB5CONF | grep gssapi >/dev/null ; then + if "$PKGCONFIG" krb5-gssapi; then AC_MSG_RESULT([yes]) AC_DEFINE([GSSAPI], [1], [Define this if you want GSSAPI support in the version 2 protocol]) - GSSCFLAGS="`$KRB5CONF --cflags gssapi`" - GSSLIBS="`$KRB5CONF --libs gssapi`" + GSSCFLAGS="`$PKGCONFIG --cflags krb5-gssapi`" + GSSLIBS="`$PKGCONFIG --libs krb5-gssapi`" CPPFLAGS="$CPPFLAGS $GSSCFLAGS" else AC_MSG_RESULT([no]) @@ -4681,51 +4756,82 @@ AC_ARG_WITH([kerberos5], [AC_MSG_RESULT([no]) ]) else - CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include" - LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib" - AC_MSG_CHECKING([whether we are using Heimdal]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include - ]], [[ char *tmp = heimdal_version; ]])], + AC_PATH_TOOL([KRB5CONF], [krb5-config], + [$KRB5ROOT/bin/krb5-config], + [$KRB5ROOT/bin:$PATH]) + if test -x $KRB5CONF ; then + K5CFLAGS="`$KRB5CONF --cflags`" + K5LIBS="`$KRB5CONF --libs`" + CPPFLAGS="$CPPFLAGS $K5CFLAGS" + + AC_MSG_CHECKING([for gssapi support]) + if $KRB5CONF | grep gssapi >/dev/null ; then + AC_MSG_RESULT([yes]) + AC_DEFINE([GSSAPI], [1], + [Define this if you want GSSAPI + support in the version 2 protocol]) + GSSCFLAGS="`$KRB5CONF --cflags gssapi`" + GSSLIBS="`$KRB5CONF --libs gssapi`" + CPPFLAGS="$CPPFLAGS $GSSCFLAGS" + else + AC_MSG_RESULT([no]) + fi + AC_MSG_CHECKING([whether we are using Heimdal]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include + ]], [[ char *tmp = heimdal_version; ]])], [ AC_MSG_RESULT([yes]) - AC_DEFINE([HEIMDAL]) - K5LIBS="-lkrb5" - K5LIBS="$K5LIBS -lcom_err -lasn1" - AC_CHECK_LIB([roken], [net_write], - [K5LIBS="$K5LIBS -lroken"]) - AC_CHECK_LIB([des], [des_cbc_encrypt], - [K5LIBS="$K5LIBS -ldes"]) - ], [ AC_MSG_RESULT([no]) - K5LIBS="-lkrb5 -lk5crypto -lcom_err" - ]) - AC_SEARCH_LIBS([dn_expand], [resolv]) + AC_DEFINE([HEIMDAL], [1], + [Define this if you are using the Heimdal + version of Kerberos V5]) ], + [AC_MSG_RESULT([no]) + ]) + else + CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include" + LDFLAGS="$LDFLAGS -L${KRB5ROOT}/lib" + AC_MSG_CHECKING([whether we are using Heimdal]) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include + ]], [[ char *tmp = heimdal_version; ]])], + [ AC_MSG_RESULT([yes]) + AC_DEFINE([HEIMDAL]) + K5LIBS="-lkrb5" + K5LIBS="$K5LIBS -lcom_err -lasn1" + AC_CHECK_LIB([roken], [net_write], + [K5LIBS="$K5LIBS -lroken"]) + AC_CHECK_LIB([des], [des_cbc_encrypt], + [K5LIBS="$K5LIBS -ldes"]) + ], [ AC_MSG_RESULT([no]) + K5LIBS="-lkrb5 -lk5crypto -lcom_err" + ]) + AC_SEARCH_LIBS([dn_expand], [resolv]) - AC_CHECK_LIB([gssapi_krb5], [gss_init_sec_context], - [ AC_DEFINE([GSSAPI]) - GSSLIBS="-lgssapi_krb5" ], - [ AC_CHECK_LIB([gssapi], [gss_init_sec_context], + AC_CHECK_LIB([gssapi_krb5], [gss_init_sec_context], [ AC_DEFINE([GSSAPI]) - GSSLIBS="-lgssapi" ], - [ AC_CHECK_LIB([gss], [gss_init_sec_context], + GSSLIBS="-lgssapi_krb5" ], + [ AC_CHECK_LIB([gssapi], [gss_init_sec_context], [ AC_DEFINE([GSSAPI]) - GSSLIBS="-lgss" ], - AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail])) + GSSLIBS="-lgssapi" ], + [ AC_CHECK_LIB([gss], [gss_init_sec_context], + [ AC_DEFINE([GSSAPI]) + GSSLIBS="-lgss" ], + AC_MSG_WARN([Cannot find any suitable gss-api library - build may fail])) + ]) ]) - ]) - AC_CHECK_HEADER([gssapi.h], , - [ unset ac_cv_header_gssapi_h - CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" - AC_CHECK_HEADERS([gssapi.h], , - AC_MSG_WARN([Cannot find any suitable gss-api header - build may fail]) - ) - ] - ) + AC_CHECK_HEADER([gssapi.h], , + [ unset ac_cv_header_gssapi_h + CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" + AC_CHECK_HEADERS([gssapi.h], , + AC_MSG_WARN([Cannot find any suitable gss-api header - build may fail]) + ) + ] + ) - oldCPP="$CPPFLAGS" - CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" - AC_CHECK_HEADER([gssapi_krb5.h], , - [ CPPFLAGS="$oldCPP" ]) + oldCPP="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -I${KRB5ROOT}/include/gssapi" + AC_CHECK_HEADER([gssapi_krb5.h], , + [ CPPFLAGS="$oldCPP" ]) + fi fi if test -n "${rpath_opt}" ; then LDFLAGS="$LDFLAGS ${rpath_opt}${KRB5ROOT}/lib" @@ -4965,19 +5071,6 @@ else fi AC_SUBST([mansubdir]) -# Check whether to enable MD5 passwords -MD5_MSG="no" -AC_ARG_WITH([md5-passwords], - [ --with-md5-passwords Enable use of MD5 passwords], - [ - if test "x$withval" != "xno" ; then - AC_DEFINE([HAVE_MD5_PASSWORDS], [1], - [Define if you want to allow MD5 passwords]) - MD5_MSG="yes" - fi - ] -) - # Whether to disable shadow password support AC_ARG_WITH([shadow], [ --without-shadow Disable shadow password support], @@ -5572,7 +5665,6 @@ echo " PAM support: $PAM_MSG" echo " OSF SIA support: $SIA_MSG" echo " KerberosV support: $KRB5_MSG" echo " SELinux support: $SELINUX_MSG" -echo " MD5 password support: $MD5_MSG" echo " libedit support: $LIBEDIT_MSG" echo " libldns support: $LDNS_MSG" echo " Solaris process contract support: $SPC_MSG" diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index 96972ec4880..95ab2199b26 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec @@ -1,4 +1,4 @@ -%global ver 8.6p1 +%global ver 8.9p1 %global rel 1%{?dist} # OpenSSH privilege separation requires a user & group ID @@ -66,7 +66,7 @@ # rpm -ba|--rebuild --define "smartcard 1" %{?smartcard:%global scard 1} -# Is this a build for the rescue CD (without PAM, with MD5)? (1=yes 0=no) +# Is this a build for the rescue CD (without PAM)? (1=yes 0=no) %global rescue 0 %{?build_rescue:%global rescue 1} @@ -211,7 +211,6 @@ CFLAGS="$RPM_OPT_FLAGS -Os"; export CFLAGS --with-default-path=/usr/local/bin:/bin:/usr/bin \ --with-superuser-path=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin \ --with-privsep-path=%{_var}/empty/sshd \ - --with-md5-passwords \ --mandir=%{_mandir} \ --with-mantype=man \ --disable-strip \ @@ -424,7 +423,10 @@ fi %endif %changelog -* Mon Jul 20 2020 Damien Miller +* Thu Oct 28 2021 Damien Miller +- Remove remaining traces of --with-md5-passwords + +* Mon Jul 20 2020 Damien Miller - Add ssh-sk-helper and corresponding manual page. * Sat Feb 10 2018 Darren Tucker diff --git a/contrib/redhat/sshd.init.old b/contrib/redhat/sshd.init.old deleted file mode 100755 index 8a30f7da4a4..00000000000 --- a/contrib/redhat/sshd.init.old +++ /dev/null @@ -1,155 +0,0 @@ -#!/bin/bash -# -# Init file for OpenSSH server daemon -# -# chkconfig: 2345 55 25 -# description: OpenSSH server daemon -# -# processname: sshd -# config: /etc/ssh/ssh_host_key -# config: /etc/ssh/ssh_host_key.pub -# config: /etc/ssh/ssh_random_seed -# config: /etc/ssh/sshd_config -# pidfile: /var/run/sshd.pid - -# source function library -. /etc/rc.d/init.d/functions - -# pull in sysconfig settings -[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd - -RETVAL=0 -prog="sshd" - -# Some functions to make the below more readable -KEYGEN=/usr/bin/ssh-keygen -SSHD=/usr/sbin/sshd -RSA_KEY=/etc/ssh/ssh_host_rsa_key -DSA_KEY=/etc/ssh/ssh_host_dsa_key -PID_FILE=/var/run/sshd.pid - -my_success() { - local msg - if [ $# -gt 1 ]; then - msg="$2" - else - msg="done" - fi - case "`type -type success`" in - function) - success "$1" - ;; - *) - echo -n "${msg}" - ;; - esac -} -my_failure() { - local msg - if [ $# -gt 1 ]; then - msg="$2" - else - msg="FAILED" - fi - case "`type -type failure`" in - function) - failure "$1" - ;; - *) - echo -n "${msg}" - ;; - esac -} -do_rsa_keygen() { - if [ ! -s $RSA_KEY ]; then - echo -n "Generating SSH2 RSA host key: " - if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; then - chmod 600 $RSA_KEY - chmod 644 $RSA_KEY.pub - my_success "RSA key generation" - echo - else - my_failure "RSA key generation" - echo - exit 1 - fi - fi -} -do_dsa_keygen() { - if [ ! -s $DSA_KEY ]; then - echo -n "Generating SSH2 DSA host key: " - if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; then - chmod 600 $DSA_KEY - chmod 644 $DSA_KEY.pub - my_success "DSA key generation" - echo - else - my_failure "DSA key generation" - echo - exit 1 - fi - fi -} -do_restart_sanity_check() { - $SSHD -t - RETVAL=$? - if [ ! "$RETVAL" = 0 ]; then - my_failure "Configuration file or keys" - echo - fi -} - - -case "$1" in - start) - # Create keys if necessary - do_rsa_keygen; - do_dsa_keygen; - - echo -n "Starting sshd: " - if [ ! -f $PID_FILE ] ; then - sshd $OPTIONS - RETVAL=$? - if [ "$RETVAL" = "0" ] ; then - my_success "sshd startup" "sshd" - touch /var/lock/subsys/sshd - else - my_failure "sshd startup" "" - fi - fi - echo - ;; - stop) - echo -n "Shutting down sshd: " - if [ -f $PID_FILE ] ; then - killproc sshd - RETVAL=$? - [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/sshd - fi - echo - ;; - restart) - do_restart_sanity_check - $0 stop - $0 start - RETVAL=$? - ;; - condrestart) - if [ -f /var/lock/subsys/sshd ] ; then - do_restart_sanity_check - $0 stop - $0 start - RETVAL=$? - fi - ;; - status) - status sshd - RETVAL=$? - ;; - *) - echo "Usage: sshd {start|stop|restart|status|condrestart}" - exit 1 - ;; -esac - -exit $RETVAL diff --git a/contrib/redhat/sshd.pam.old b/contrib/redhat/sshd.pam.old deleted file mode 100644 index 26dcb34d9e9..00000000000 --- a/contrib/redhat/sshd.pam.old +++ /dev/null @@ -1,8 +0,0 @@ -#%PAM-1.0 -auth required /lib/security/pam_pwdb.so shadow nodelay -auth required /lib/security/pam_nologin.so -account required /lib/security/pam_pwdb.so -password required /lib/security/pam_cracklib.so -password required /lib/security/pam_pwdb.so shadow nullok use_authtok -session required /lib/security/pam_pwdb.so -session required /lib/security/pam_limits.so diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index 827eee6c270..8df0ae3b0b4 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec @@ -13,7 +13,7 @@ Summary: OpenSSH, a free Secure Shell (SSH) protocol implementation Name: openssh -Version: 8.6p1 +Version: 8.9p1 URL: https://www.openssh.com/ Release: 1 Source0: openssh-%{version}.tar.gz diff --git a/defines.h b/defines.h index d6a1d014cab..279e509aae2 100644 --- a/defines.h +++ b/defines.h @@ -66,7 +66,9 @@ enum #endif /* IPTOS_LOWDELAY */ /* - * Definitions for DiffServ Codepoints as per RFC2474 + * Definitions for DiffServ Codepoints as per RFCs 2474, 3246, 4594 & 8622. + * These are the 6 most significant bits as they appear on the wire, so the + * two least significant bits must be zero. */ #ifndef IPTOS_DSCP_AF11 # define IPTOS_DSCP_AF11 0x28 @@ -97,7 +99,7 @@ enum # define IPTOS_DSCP_EF 0xb8 #endif /* IPTOS_DSCP_EF */ #ifndef IPTOS_DSCP_LE -# define IPTOS_DSCP_LE 0x01 +# define IPTOS_DSCP_LE 0x04 #endif /* IPTOS_DSCP_LE */ #ifndef IPTOS_PREC_CRITIC_ECP # define IPTOS_PREC_CRITIC_ECP 0xa0 @@ -304,6 +306,12 @@ typedef long long intmax_t; typedef unsigned long long uintmax_t; #endif +#if SIZEOF_TIME_T == SIZEOF_LONG_LONG_INT +# define SSH_TIME_T_MAX LLONG_MAX +#else +# define SSH_TIME_T_MAX INT_MAX +#endif + #ifndef HAVE_U_CHAR typedef unsigned char u_char; # define HAVE_U_CHAR @@ -526,6 +534,39 @@ struct winsize { ((tsp)->tv_sec cmp (usp)->tv_sec)) #endif +/* Operations on timespecs. */ +#ifndef timespecclear +#define timespecclear(tsp) (tsp)->tv_sec = (tsp)->tv_nsec = 0 +#endif +#ifndef timespeccmp +#define timespeccmp(tsp, usp, cmp) \ + (((tsp)->tv_sec == (usp)->tv_sec) ? \ + ((tsp)->tv_nsec cmp (usp)->tv_nsec) : \ + ((tsp)->tv_sec cmp (usp)->tv_sec)) +#endif +#ifndef timespecadd +#define timespecadd(tsp, usp, vsp) \ + do { \ + (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ + (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ + if ((vsp)->tv_nsec >= 1000000000L) { \ + (vsp)->tv_sec++; \ + (vsp)->tv_nsec -= 1000000000L; \ + } \ + } while (0) +#endif +#ifndef timespecsub +#define timespecsub(tsp, usp, vsp) \ + do { \ + (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ + (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ + if ((vsp)->tv_nsec < 0) { \ + (vsp)->tv_sec--; \ + (vsp)->tv_nsec += 1000000000L; \ + } \ + } while (0) +#endif + #ifndef __P # define __P(x) x #endif @@ -895,10 +936,10 @@ struct winsize { #endif /* - * sntrup761 uses variable length arrays, only enable if the compiler - * supports them. + * sntrup761 uses variable length arrays and c99-style declarations after code, + * so only enable if the compiler supports them. */ -#ifdef VARIABLE_LENGTH_ARRAYS +#if defined(VARIABLE_LENGTH_ARRAYS) && defined(VARIABLE_DECLARATION_AFTER_CODE) # define USE_SNTRUP761X25519 1 #endif #endif /* _DEFINES_H */ diff --git a/digest-libc.c b/digest-libc.c index 86a1dbf291a..6e77a4492dd 100644 --- a/digest-libc.c +++ b/digest-libc.c @@ -36,6 +36,16 @@ #include #endif +#if !defined(SHA256_BLOCK_LENGTH) && defined(SHA256_HMAC_BLOCK_SIZE) +#define SHA256_BLOCK_LENGTH SHA256_HMAC_BLOCK_SIZE +#endif +#if !defined(SHA384_BLOCK_LENGTH) && defined(SHA512_HMAC_BLOCK_SIZE) +#define SHA384_BLOCK_LENGTH SHA512_HMAC_BLOCK_SIZE +#endif +#if !defined(SHA512_BLOCK_LENGTH) && defined(SHA512_HMAC_BLOCK_SIZE) +#define SHA512_BLOCK_LENGTH SHA512_HMAC_BLOCK_SIZE +#endif + #include "ssherr.h" #include "sshbuf.h" #include "digest.h" diff --git a/dns.c b/dns.c index 91c6e9f044b..f2310bec2b0 100644 --- a/dns.c +++ b/dns.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dns.c,v 1.39 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: dns.c,v 1.42 2022/02/01 23:32:51 djm Exp $ */ /* * Copyright (c) 2003 Wesley Griffin. All rights reserved. @@ -43,7 +43,7 @@ #include "log.h" #include "digest.h" -static const char *errset_text[] = { +static const char * const errset_text[] = { "success", /* 0 ERRSET_SUCCESS */ "out of memory", /* 1 ERRSET_NOMEMORY */ "general failure", /* 2 ERRSET_FAIL */ @@ -75,6 +75,7 @@ dns_result_totext(unsigned int res) /* * Read SSHFP parameters from key buffer. + * Caller must free digest which is allocated by sshkey_fingerprint_raw(). */ static int dns_read_key(u_int8_t *algorithm, u_int8_t *digest_type, @@ -86,32 +87,21 @@ dns_read_key(u_int8_t *algorithm, u_int8_t *digest_type, switch (key->type) { case KEY_RSA: *algorithm = SSHFP_KEY_RSA; - if (!*digest_type) - *digest_type = SSHFP_HASH_SHA1; break; case KEY_DSA: *algorithm = SSHFP_KEY_DSA; - if (!*digest_type) - *digest_type = SSHFP_HASH_SHA1; break; case KEY_ECDSA: *algorithm = SSHFP_KEY_ECDSA; - if (!*digest_type) - *digest_type = SSHFP_HASH_SHA256; break; case KEY_ED25519: *algorithm = SSHFP_KEY_ED25519; - if (!*digest_type) - *digest_type = SSHFP_HASH_SHA256; break; case KEY_XMSS: *algorithm = SSHFP_KEY_XMSS; - if (!*digest_type) - *digest_type = SSHFP_HASH_SHA256; break; default: *algorithm = SSHFP_KEY_RESERVED; /* 0 */ - *digest_type = SSHFP_HASH_RESERVED; /* 0 */ } switch (*digest_type) { @@ -133,7 +123,6 @@ dns_read_key(u_int8_t *algorithm, u_int8_t *digest_type, } else { *digest = NULL; *digest_len = 0; - success = 0; } return success; @@ -212,7 +201,6 @@ verify_host_key_dns(const char *hostname, struct sockaddr *address, struct rrsetinfo *fingerprints = NULL; u_int8_t hostkey_algorithm; - u_int8_t hostkey_digest_type = SSHFP_HASH_RESERVED; u_char *hostkey_digest; size_t hostkey_digest_len; @@ -248,14 +236,6 @@ verify_host_key_dns(const char *hostname, struct sockaddr *address, fingerprints->rri_nrdatas); } - /* Initialize default host key parameters */ - if (!dns_read_key(&hostkey_algorithm, &hostkey_digest_type, - &hostkey_digest, &hostkey_digest_len, hostkey)) { - error("Error calculating host key fingerprint."); - freerrset(fingerprints); - return -1; - } - if (fingerprints->rri_nrdatas) *flags |= DNS_VERIFY_FOUND; @@ -271,35 +251,41 @@ verify_host_key_dns(const char *hostname, struct sockaddr *address, verbose("Error parsing fingerprint from DNS."); continue; } - - if (hostkey_digest_type != dnskey_digest_type) { - hostkey_digest_type = dnskey_digest_type; - free(hostkey_digest); - - /* Initialize host key parameters */ - if (!dns_read_key(&hostkey_algorithm, - &hostkey_digest_type, &hostkey_digest, - &hostkey_digest_len, hostkey)) { - error("Error calculating key fingerprint."); - freerrset(fingerprints); - return -1; - } + debug3_f("checking SSHFP type %d fptype %d", dnskey_algorithm, + dnskey_digest_type); + + /* Calculate host key fingerprint. */ + if (!dns_read_key(&hostkey_algorithm, &dnskey_digest_type, + &hostkey_digest, &hostkey_digest_len, hostkey)) { + error("Error calculating key fingerprint."); + freerrset(fingerprints); + return -1; } /* Check if the current key is the same as the given key */ if (hostkey_algorithm == dnskey_algorithm && - hostkey_digest_type == dnskey_digest_type) { - if (hostkey_digest_len == dnskey_digest_len && - timingsafe_bcmp(hostkey_digest, dnskey_digest, - hostkey_digest_len) == 0) + hostkey_digest_len == dnskey_digest_len) { + if (timingsafe_bcmp(hostkey_digest, dnskey_digest, + hostkey_digest_len) == 0) { + debug_f("matched SSHFP type %d fptype %d", + dnskey_algorithm, dnskey_digest_type); *flags |= DNS_VERIFY_MATCH; + } else { + debug_f("failed SSHFP type %d fptype %d", + dnskey_algorithm, dnskey_digest_type); + *flags |= DNS_VERIFY_FAILED; + } } free(dnskey_digest); + free(hostkey_digest); /* from sshkey_fingerprint_raw() */ } - free(hostkey_digest); /* from sshkey_fingerprint_raw() */ freerrset(fingerprints); + /* If any fingerprint failed to validate, return failure. */ + if (*flags & DNS_VERIFY_FAILED) + *flags &= ~DNS_VERIFY_MATCH; + if (*flags & DNS_VERIFY_FOUND) if (*flags & DNS_VERIFY_MATCH) debug("matching host key fingerprint found in DNS"); diff --git a/dns.h b/dns.h index 4e6f03e0c59..32b1df160cf 100644 --- a/dns.h +++ b/dns.h @@ -1,4 +1,4 @@ -/* $OpenBSD: dns.h,v 1.18 2018/02/23 15:58:37 markus Exp $ */ +/* $OpenBSD: dns.h,v 1.19 2021/07/19 03:13:28 dtucker Exp $ */ /* * Copyright (c) 2003 Wesley Griffin. All rights reserved. @@ -52,6 +52,7 @@ enum sshfp_hashes { #define DNS_VERIFY_FOUND 0x00000001 #define DNS_VERIFY_MATCH 0x00000002 #define DNS_VERIFY_SECURE 0x00000004 +#define DNS_VERIFY_FAILED 0x00000008 int verify_host_key_dns(const char *, struct sockaddr *, struct sshkey *, int *); diff --git a/entropy.c b/entropy.c index 19ddeeafae3..a4088e43cdf 100644 --- a/entropy.c +++ b/entropy.c @@ -29,20 +29,12 @@ #ifdef WITH_OPENSSL #include -#include -#ifdef HAVE_SYS_UN_H -# include -#endif - -#include -#include #include #include #include #include #include -#include /* for offsetof */ #include #include @@ -67,121 +59,6 @@ */ #ifndef OPENSSL_PRNG_ONLY -/* - * Collect 'len' bytes of entropy into 'buf' from PRNGD/EGD daemon - * listening either on 'tcp_port', or via Unix domain socket at * - * 'socket_path'. - * Either a non-zero tcp_port or a non-null socket_path must be - * supplied. - * Returns 0 on success, -1 on error - */ -int -get_random_bytes_prngd(unsigned char *buf, int len, - unsigned short tcp_port, char *socket_path) -{ - int fd, addr_len, rval, errors; - u_char msg[2]; - struct sockaddr_storage addr; - struct sockaddr_in *addr_in = (struct sockaddr_in *)&addr; - struct sockaddr_un *addr_un = (struct sockaddr_un *)&addr; - sshsig_t old_sigpipe; - - /* Sanity checks */ - if (socket_path == NULL && tcp_port == 0) - fatal("You must specify a port or a socket"); - if (socket_path != NULL && - strlen(socket_path) >= sizeof(addr_un->sun_path)) - fatal("Random pool path is too long"); - if (len <= 0 || len > 255) - fatal("Too many bytes (%d) to read from PRNGD", len); - - memset(&addr, '\0', sizeof(addr)); - - if (tcp_port != 0) { - addr_in->sin_family = AF_INET; - addr_in->sin_addr.s_addr = htonl(INADDR_LOOPBACK); - addr_in->sin_port = htons(tcp_port); - addr_len = sizeof(*addr_in); - } else { - addr_un->sun_family = AF_UNIX; - strlcpy(addr_un->sun_path, socket_path, - sizeof(addr_un->sun_path)); - addr_len = offsetof(struct sockaddr_un, sun_path) + - strlen(socket_path) + 1; - } - - old_sigpipe = ssh_signal(SIGPIPE, SIG_IGN); - - errors = 0; - rval = -1; -reopen: - fd = socket(addr.ss_family, SOCK_STREAM, 0); - if (fd == -1) { - error("Couldn't create socket: %s", strerror(errno)); - goto done; - } - - if (connect(fd, (struct sockaddr*)&addr, addr_len) == -1) { - if (tcp_port != 0) { - error("Couldn't connect to PRNGD port %d: %s", - tcp_port, strerror(errno)); - } else { - error("Couldn't connect to PRNGD socket \"%s\": %s", - addr_un->sun_path, strerror(errno)); - } - goto done; - } - - /* Send blocking read request to PRNGD */ - msg[0] = 0x02; - msg[1] = len; - - if (atomicio(vwrite, fd, msg, sizeof(msg)) != sizeof(msg)) { - if (errno == EPIPE && errors < 10) { - close(fd); - errors++; - goto reopen; - } - error("Couldn't write to PRNGD socket: %s", - strerror(errno)); - goto done; - } - - if (atomicio(read, fd, buf, len) != (size_t)len) { - if (errno == EPIPE && errors < 10) { - close(fd); - errors++; - goto reopen; - } - error("Couldn't read from PRNGD socket: %s", - strerror(errno)); - goto done; - } - - rval = 0; -done: - ssh_signal(SIGPIPE, old_sigpipe); - if (fd != -1) - close(fd); - return rval; -} - -static int -seed_from_prngd(unsigned char *buf, size_t bytes) -{ -#ifdef PRNGD_PORT - debug("trying egd/prngd port %d", PRNGD_PORT); - if (get_random_bytes_prngd(buf, bytes, PRNGD_PORT, NULL) == 0) - return 0; -#endif -#ifdef PRNGD_SOCKET - debug("trying egd/prngd socket %s", PRNGD_SOCKET); - if (get_random_bytes_prngd(buf, bytes, 0, PRNGD_SOCKET) == 0) - return 0; -#endif - return -1; -} - void rexec_send_rng_seed(struct sshbuf *m) { diff --git a/gss-genr.c b/gss-genr.c index 6852805171a..2cd695e543c 100644 --- a/gss-genr.c +++ b/gss-genr.c @@ -34,6 +34,7 @@ #include #include #include +#include #include #include "xmalloc.h" diff --git a/hash.c b/hash.c index fb81e478694..b4f8f6c50d5 100644 --- a/hash.c +++ b/hash.c @@ -1,5 +1,3 @@ -/* $OpenBSD: hash.c,v 1.4 2017/12/14 21:07:39 naddy Exp $ */ - /* $OpenBSD: hash.c,v 1.6 2019/11/29 00:11:21 djm Exp $ */ /* * Public domain. Author: Christian Weisgerber diff --git a/hostfile.c b/hostfile.c index 5f0e3515d65..bd49e3ac7c4 100644 --- a/hostfile.c +++ b/hostfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.c,v 1.90 2021/04/03 06:58:30 djm Exp $ */ +/* $OpenBSD: hostfile.c,v 1.93 2022/01/06 22:02:52 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -118,7 +118,7 @@ host_hash(const char *host, const char *name_from_hostfile, u_int src_len) struct ssh_hmac_ctx *ctx; u_char salt[256], result[256]; char uu_salt[512], uu_result[512]; - static char encoded[1024]; + char *encoded = NULL; u_int len; len = ssh_digest_bytes(SSH_DIGEST_SHA1); @@ -143,9 +143,8 @@ host_hash(const char *host, const char *name_from_hostfile, u_int src_len) if (__b64_ntop(salt, len, uu_salt, sizeof(uu_salt)) == -1 || __b64_ntop(result, len, uu_result, sizeof(uu_result)) == -1) fatal_f("__b64_ntop failed"); - - snprintf(encoded, sizeof(encoded), "%s%s%c%s", HASH_MAGIC, uu_salt, - HASH_DELIM, uu_result); + xasprintf(&encoded, "%s%s%c%s", HASH_MAGIC, uu_salt, HASH_DELIM, + uu_result); return (encoded); } @@ -456,6 +455,7 @@ write_host_entry(FILE *f, const char *host, const char *ip, else { fprintf(f, "%s ", lhost); } + free(hashed_host); free(lhost); if ((r = sshkey_write(key, f)) == 0) success = 1; @@ -642,7 +642,7 @@ hostfile_replace_entries(const char *filename, const char *host, const char *ip, /* Re-add the requested keys */ want = HKF_MATCH_HOST | (ip == NULL ? 0 : HKF_MATCH_IP); for (i = 0; i < nkeys; i++) { - if ((want & ctx.match_keys[i]) == want) + if (keys[i] == NULL || (want & ctx.match_keys[i]) == want) continue; if ((fp = sshkey_fingerprint(keys[i], hash_alg, SSH_FP_DEFAULT)) == NULL) { @@ -730,8 +730,8 @@ hostfile_replace_entries(const char *filename, const char *host, const char *ip, static int match_maybe_hashed(const char *host, const char *names, int *was_hashed) { - int hashed = *names == HASH_DELIM; - const char *hashed_host; + int hashed = *names == HASH_DELIM, ret; + char *hashed_host = NULL; size_t nlen = strlen(names); if (was_hashed != NULL) @@ -739,8 +739,10 @@ match_maybe_hashed(const char *host, const char *names, int *was_hashed) if (hashed) { if ((hashed_host = host_hash(host, names, nlen)) == NULL) return -1; - return nlen == strlen(hashed_host) && - strncmp(hashed_host, names, nlen) == 0; + ret = (nlen == strlen(hashed_host) && + strncmp(hashed_host, names, nlen) == 0); + free(hashed_host); + return ret; } return match_hostname(host, names) == 1; } diff --git a/includes.h b/includes.h index 0fd71792e1a..6d17ef6da93 100644 --- a/includes.h +++ b/includes.h @@ -23,7 +23,6 @@ #endif #include -#include #include /* For CMSG_* */ #ifdef HAVE_LIMITS_H diff --git a/kex.c b/kex.c index df6c3b00aeb..288063bd073 100644 --- a/kex.c +++ b/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.168 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.172 2022/02/01 23:32:51 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -67,7 +67,7 @@ static int kex_choose_conf(struct ssh *); static int kex_input_newkeys(int, u_int32_t, struct ssh *); -static const char *proposal_names[PROPOSAL_MAX] = { +static const char * const proposal_names[PROPOSAL_MAX] = { "KEX algorithms", "host key algorithms", "ciphers ctos", @@ -555,9 +555,12 @@ kex_send_ext_info(struct ssh *ssh) return SSH_ERR_ALLOC_FAIL; /* XXX filter algs list by allowed pubkey/hostbased types */ if ((r = sshpkt_start(ssh, SSH2_MSG_EXT_INFO)) != 0 || - (r = sshpkt_put_u32(ssh, 1)) != 0 || + (r = sshpkt_put_u32(ssh, 2)) != 0 || (r = sshpkt_put_cstring(ssh, "server-sig-algs")) != 0 || (r = sshpkt_put_cstring(ssh, algs)) != 0 || + (r = sshpkt_put_cstring(ssh, + "publickey-hostbound@openssh.com")) != 0 || + (r = sshpkt_put_cstring(ssh, "0")) != 0 || (r = sshpkt_send(ssh)) != 0) { error_fr(r, "compose"); goto out; @@ -617,6 +620,21 @@ kex_input_ext_info(int type, u_int32_t seq, struct ssh *ssh) debug_f("%s=<%s>", name, val); kex->server_sig_algs = val; val = NULL; + } else if (strcmp(name, + "publickey-hostbound@openssh.com") == 0) { + /* XXX refactor */ + /* Ensure no \0 lurking in value */ + if (memchr(val, '\0', vlen) != NULL) { + error_f("nul byte in %s", name); + return SSH_ERR_INVALID_FORMAT; + } + debug_f("%s=<%s>", name, val); + if (strcmp(val, "0") == 0) + kex->flags |= KEX_HAS_PUBKEY_HOSTBOUND; + else { + debug_f("unsupported version of %s extension", + name); + } } else debug_f("%s (unrecognised)", name); free(name); @@ -818,6 +836,8 @@ kex_free(struct kex *kex) sshbuf_free(kex->server_version); sshbuf_free(kex->client_pub); sshbuf_free(kex->session_id); + sshbuf_free(kex->initial_sig); + sshkey_free(kex->initial_hostkey); free(kex->failed_choice); free(kex->hostkey_alg); free(kex->name); @@ -1003,6 +1023,18 @@ proposals_match(char *my[PROPOSAL_MAX], char *peer[PROPOSAL_MAX]) return (1); } +/* returns non-zero if proposal contains any algorithm from algs */ +static int +has_any_alg(const char *proposal, const char *algs) +{ + char *cp; + + if ((cp = match_list(proposal, algs, NULL)) == NULL) + return 0; + free(cp); + return 1; +} + static int kex_choose_conf(struct ssh *ssh) { @@ -1038,6 +1070,16 @@ kex_choose_conf(struct ssh *ssh) free(ext); } + /* Check whether client supports rsa-sha2 algorithms */ + if (kex->server && (kex->flags & KEX_INITIAL)) { + if (has_any_alg(peer[PROPOSAL_SERVER_HOST_KEY_ALGS], + "rsa-sha2-256,rsa-sha2-256-cert-v01@openssh.com")) + kex->flags |= KEX_RSA_SHA2_256_SUPPORTED; + if (has_any_alg(peer[PROPOSAL_SERVER_HOST_KEY_ALGS], + "rsa-sha2-512,rsa-sha2-512-cert-v01@openssh.com")) + kex->flags |= KEX_RSA_SHA2_512_SUPPORTED; + } + /* Algorithm Negotiation */ if ((r = choose_kex(kex, cprop[PROPOSAL_KEX_ALGS], sprop[PROPOSAL_KEX_ALGS])) != 0) { diff --git a/kex.h b/kex.h index cc54cdb3f87..6a1f8aaa286 100644 --- a/kex.h +++ b/kex.h @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.h,v 1.114 2021/01/31 22:55:29 djm Exp $ */ +/* $OpenBSD: kex.h,v 1.117 2022/01/06 21:55:23 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -342,8 +342,12 @@ enum kex_exchange { KEX_MAX }; -#define KEX_INIT_SENT 0x0001 -#define KEX_INITIAL 0x0002 +/* kex->flags */ +#define KEX_INIT_SENT 0x0001 +#define KEX_INITIAL 0x0002 +#define KEX_HAS_PUBKEY_HOSTBOUND 0x0004 +#define KEX_RSA_SHA2_256_SUPPORTED 0x0008 /* only set in server for now */ +#define KEX_RSA_SHA2_512_SUPPORTED 0x0010 /* only set in server for now */ struct sshenc { char *name; @@ -367,6 +371,7 @@ struct newkeys { }; struct ssh; +struct sshbuf; struct kex { struct newkeys *newkeys[MODE_MAX]; @@ -385,6 +390,8 @@ struct kex { struct sshbuf *client_version; struct sshbuf *server_version; struct sshbuf *session_id; + struct sshbuf *initial_sig; + struct sshkey *initial_hostkey; sig_atomic_t done; u_int flags; int hash_alg; diff --git a/kexdh.c b/kexdh.c index 001dd12db57..c1084f2146e 100644 --- a/kexdh.c +++ b/kexdh.c @@ -29,9 +29,9 @@ #include -#include #include #include +#include #include "openbsd-compat/openssl-compat.h" #include diff --git a/kexgen.c b/kexgen.c index aa385e813a6..bb33eeec13d 100644 --- a/kexgen.c +++ b/kexgen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexgen.c,v 1.7 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: kexgen.c,v 1.8 2021/12/19 22:08:06 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl. All rights reserved. * @@ -903,8 +903,26 @@ input_kex_gen_reply(int type, u_int32_t seq, struct ssh *ssh) kex->hostkey_alg, ssh->compat, NULL)) != 0) goto out; - if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) - r = kex_send_newkeys(ssh); + if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 || + (r = kex_send_newkeys(ssh)) != 0) + goto out; + + /* save initial signature and hostkey */ + if ((kex->flags & KEX_INITIAL) != 0) { + if (kex->initial_hostkey != NULL || kex->initial_sig != NULL) { + r = SSH_ERR_INTERNAL_ERROR; + goto out; + } + if ((kex->initial_sig = sshbuf_new()) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + if ((r = sshbuf_put(kex->initial_sig, signature, slen)) != 0) + goto out; + kex->initial_hostkey = server_host_key; + server_host_key = NULL; + } + /* success */ out: explicit_bzero(hash, sizeof(hash)); explicit_bzero(kex->c25519_client_key, sizeof(kex->c25519_client_key)); @@ -1477,8 +1495,15 @@ input_kex_gen_init(int type, u_int32_t seq, struct ssh *ssh) (r = sshpkt_send(ssh)) != 0) goto out; - if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) - r = kex_send_newkeys(ssh); + if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 || + (r = kex_send_newkeys(ssh)) != 0) + goto out; + /* retain copy of hostkey used at initial KEX */ + if (kex->initial_hostkey == NULL && + (r = sshkey_from_private(server_host_public, + &kex->initial_hostkey)) != 0) + goto out; + /* success */ out: explicit_bzero(hash, sizeof(hash)); sshbuf_free(server_host_key_blob); diff --git a/kexgexc.c b/kexgexc.c index 4a2e741d845..e99e0cf216e 100644 --- a/kexgexc.c +++ b/kexgexc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexgexc.c,v 1.37 2021/01/31 22:55:29 djm Exp $ */ +/* $OpenBSD: kexgexc.c,v 1.38 2021/12/19 22:08:06 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * Copyright (c) 2001 Markus Friedl. All rights reserved. @@ -206,8 +206,26 @@ input_kex_dh_gex_reply(int type, u_int32_t seq, struct ssh *ssh) hashlen, kex->hostkey_alg, ssh->compat, NULL)) != 0) goto out; - if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) - r = kex_send_newkeys(ssh); + if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 || + (r = kex_send_newkeys(ssh)) != 0) + goto out; + + /* save initial signature and hostkey */ + if ((kex->flags & KEX_INITIAL) != 0) { + if (kex->initial_hostkey != NULL || kex->initial_sig != NULL) { + r = SSH_ERR_INTERNAL_ERROR; + goto out; + } + if ((kex->initial_sig = sshbuf_new()) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + if ((r = sshbuf_put(kex->initial_sig, signature, slen)) != 0) + goto out; + kex->initial_hostkey = server_host_key; + server_host_key = NULL; + } + /* success */ out: explicit_bzero(hash, sizeof(hash)); DH_free(kex->dh); diff --git a/kexgexs.c b/kexgexs.c index f0fbcb91254..72b444f6906 100644 --- a/kexgexs.c +++ b/kexgexs.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexgexs.c,v 1.43 2021/01/31 22:55:29 djm Exp $ */ +/* $OpenBSD: kexgexs.c,v 1.44 2021/12/19 22:08:06 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * Copyright (c) 2001 Markus Friedl. All rights reserved. @@ -194,8 +194,16 @@ input_kex_dh_gex_init(int type, u_int32_t seq, struct ssh *ssh) (r = sshpkt_send(ssh)) != 0) goto out; - if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) == 0) - r = kex_send_newkeys(ssh); + if ((r = kex_derive_keys(ssh, hash, hashlen, shared_secret)) != 0 || + (r = kex_send_newkeys(ssh)) != 0) + goto out; + + /* retain copy of hostkey used at initial KEX */ + if (kex->initial_hostkey == NULL && + (r = sshkey_from_private(server_host_public, + &kex->initial_hostkey)) != 0) + goto out; + /* success */ out: explicit_bzero(hash, sizeof(hash)); DH_free(kex->dh); diff --git a/kexsntrup761x25519.c b/kexsntrup761x25519.c index e3007fa2912..6afb1bad560 100644 --- a/kexsntrup761x25519.c +++ b/kexsntrup761x25519.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexsntrup761x25519.c,v 1.1 2020/12/29 00:59:15 djm Exp $ */ +/* $OpenBSD: kexsntrup761x25519.c,v 1.2 2021/12/05 12:28:27 jsg Exp $ */ /* * Copyright (c) 2019 Markus Friedl. All rights reserved. * @@ -132,7 +132,7 @@ kex_kem_sntrup761x25519_enc(struct kex *kex, dump_digest("server public key 25519:", server_pub, CURVE25519_SIZE); dump_digest("server cipher text:", ciphertext, crypto_kem_sntrup761_CIPHERTEXTBYTES); - dump_digest("server kem key:", kem_key, sizeof(kem_key)); + dump_digest("server kem key:", kem_key, crypto_kem_sntrup761_BYTES); dump_digest("concatenation of KEM key and ECDH shared key:", sshbuf_ptr(buf), sshbuf_len(buf)); #endif diff --git a/krl.c b/krl.c index 5612e774273..17b88edde77 100644 --- a/krl.c +++ b/krl.c @@ -14,7 +14,7 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $OpenBSD: krl.c,v 1.52 2020/10/18 11:32:01 djm Exp $ */ +/* $OpenBSD: krl.c,v 1.53 2021/06/04 06:19:07 djm Exp $ */ #include "includes.h" @@ -61,7 +61,7 @@ struct revoked_serial { }; static int serial_cmp(struct revoked_serial *a, struct revoked_serial *b); RB_HEAD(revoked_serial_tree, revoked_serial); -RB_GENERATE_STATIC(revoked_serial_tree, revoked_serial, tree_entry, serial_cmp); +RB_GENERATE_STATIC(revoked_serial_tree, revoked_serial, tree_entry, serial_cmp) /* Tree of key IDs */ struct revoked_key_id { @@ -70,7 +70,7 @@ struct revoked_key_id { }; static int key_id_cmp(struct revoked_key_id *a, struct revoked_key_id *b); RB_HEAD(revoked_key_id_tree, revoked_key_id); -RB_GENERATE_STATIC(revoked_key_id_tree, revoked_key_id, tree_entry, key_id_cmp); +RB_GENERATE_STATIC(revoked_key_id_tree, revoked_key_id, tree_entry, key_id_cmp) /* Tree of blobs (used for keys and fingerprints) */ struct revoked_blob { @@ -80,7 +80,7 @@ struct revoked_blob { }; static int blob_cmp(struct revoked_blob *a, struct revoked_blob *b); RB_HEAD(revoked_blob_tree, revoked_blob); -RB_GENERATE_STATIC(revoked_blob_tree, revoked_blob, tree_entry, blob_cmp); +RB_GENERATE_STATIC(revoked_blob_tree, revoked_blob, tree_entry, blob_cmp) /* Tracks revoked certs for a single CA */ struct revoked_certs { diff --git a/log.c b/log.c index 165b486389d..99bf046a792 100644 --- a/log.c +++ b/log.c @@ -1,4 +1,4 @@ -/* $OpenBSD: log.c,v 1.58 2021/04/15 16:24:31 markus Exp $ */ +/* $OpenBSD: log.c,v 1.60 2021/09/16 15:11:19 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -346,6 +346,7 @@ do_log(LogLevel level, int force, const char *suffix, const char *fmt, int pri = LOG_INFO; int saved_errno = errno; log_handler_fn *tmp_handler; + const char *progname = argv0 != NULL ? argv0 : __progname; if (!force && level > log_level) return; @@ -403,16 +404,18 @@ do_log(LogLevel level, int force, const char *suffix, const char *fmt, tmp_handler(level, force, fmtbuf, log_handler_ctx); log_handler = tmp_handler; } else if (log_on_stderr) { - snprintf(msgbuf, sizeof msgbuf, "%.*s\r\n", + snprintf(msgbuf, sizeof msgbuf, "%s%s%.*s\r\n", + (log_on_stderr > 1) ? progname : "", + (log_on_stderr > 1) ? ": " : "", (int)sizeof msgbuf - 3, fmtbuf); (void)write(log_stderr_fd, msgbuf, strlen(msgbuf)); } else { #if defined(HAVE_OPENLOG_R) && defined(SYSLOG_DATA_INIT) - openlog_r(argv0 ? argv0 : __progname, LOG_PID, log_facility, &sdata); + openlog_r(progname, LOG_PID, log_facility, &sdata); syslog_r(pri, &sdata, "%.500s", fmtbuf); closelog_r(&sdata); #else - openlog(argv0 ? argv0 : __progname, LOG_PID, log_facility); + openlog(progname, LOG_PID, log_facility); syslog(pri, "%.500s", fmtbuf); closelog(); #endif @@ -466,8 +469,9 @@ sshlogv(const char *file, const char *func, int line, int showfunc, const char *cp; size_t i; - snprintf(tag, sizeof(tag), "%.48s:%.48s():%d", - (cp = strrchr(file, '/')) == NULL ? file : cp + 1, func, line); + snprintf(tag, sizeof(tag), "%.48s:%.48s():%d (pid=%ld)", + (cp = strrchr(file, '/')) == NULL ? file : cp + 1, func, line, + (long)getpid()); for (i = 0; i < nlog_verbose; i++) { if (match_pattern_list(tag, log_verbose[i], 0) == 1) { forced = 1; diff --git a/loginrec.c b/loginrec.c index ea058fd6fa7..4f21499586a 100644 --- a/loginrec.c +++ b/loginrec.c @@ -181,6 +181,7 @@ #include "auth.h" #include "sshbuf.h" #include "ssherr.h" +#include "misc.h" #ifdef HAVE_UTIL_H # include @@ -801,7 +802,7 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx) # endif # ifdef HAVE_SYSLEN_IN_UTMPX /* ut_syslen is the length of the utx_host string */ - utx->ut_syslen = MIN(strlen(li->hostname), sizeof(utx->ut_host)); + utx->ut_syslen = MINIMUM(strlen(li->hostname), sizeof(utx->ut_host)); # endif } #endif /* USE_UTMPX || USE_WTMPX */ diff --git a/md5crypt.c b/md5crypt.c deleted file mode 100644 index 52cf2959a83..00000000000 --- a/md5crypt.c +++ /dev/null @@ -1,165 +0,0 @@ -/* - * ---------------------------------------------------------------------------- - * "THE BEER-WARE LICENSE" (Revision 42): - * wrote this file. As long as you retain this - * notice you can do whatever you want with this stuff. If we meet some - * day, and you think this stuff is worth it, you can buy me a beer in - * return. Poul-Henning Kamp - * ---------------------------------------------------------------------------- - */ - -#include "includes.h" - -#if defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) -#include - -#include - -#include - -/* 0 ... 63 => ascii - 64 */ -static unsigned char itoa64[] = - "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; - -static char *magic = "$1$"; - -static char * -to64(unsigned long v, int n) -{ - static char buf[5]; - char *s = buf; - - if (n > 4) - return (NULL); - - memset(buf, '\0', sizeof(buf)); - while (--n >= 0) { - *s++ = itoa64[v&0x3f]; - v >>= 6; - } - - return (buf); -} - -int -is_md5_salt(const char *salt) -{ - return (strncmp(salt, magic, strlen(magic)) == 0); -} - -char * -md5_crypt(const char *pw, const char *salt) -{ - static char passwd[120], salt_copy[9]; - static const char *sp, *ep; - unsigned char final[16]; - int sl, pl, i, j; - MD5_CTX ctx, ctx1; - unsigned long l; - - /* Refine the Salt first */ - sp = salt; - - /* If it starts with the magic string, then skip that */ - if(strncmp(sp, magic, strlen(magic)) == 0) - sp += strlen(magic); - - /* It stops at the first '$', max 8 chars */ - for (ep = sp; *ep != '$'; ep++) { - if (*ep == '\0' || ep >= (sp + 8)) - return (NULL); - } - - /* get the length of the true salt */ - sl = ep - sp; - - /* Stash the salt */ - memcpy(salt_copy, sp, sl); - salt_copy[sl] = '\0'; - - MD5_Init(&ctx); - - /* The password first, since that is what is most unknown */ - MD5_Update(&ctx, pw, strlen(pw)); - - /* Then our magic string */ - MD5_Update(&ctx, magic, strlen(magic)); - - /* Then the raw salt */ - MD5_Update(&ctx, sp, sl); - - /* Then just as many characters of the MD5(pw, salt, pw) */ - MD5_Init(&ctx1); - MD5_Update(&ctx1, pw, strlen(pw)); - MD5_Update(&ctx1, sp, sl); - MD5_Update(&ctx1, pw, strlen(pw)); - MD5_Final(final, &ctx1); - - for(pl = strlen(pw); pl > 0; pl -= 16) - MD5_Update(&ctx, final, pl > 16 ? 16 : pl); - - /* Don't leave anything around in vm they could use. */ - memset(final, '\0', sizeof final); - - /* Then something really weird... */ - for (j = 0, i = strlen(pw); i != 0; i >>= 1) - if (i & 1) - MD5_Update(&ctx, final + j, 1); - else - MD5_Update(&ctx, pw + j, 1); - - /* Now make the output string */ - snprintf(passwd, sizeof(passwd), "%s%s$", magic, salt_copy); - - MD5_Final(final, &ctx); - - /* - * and now, just to make sure things don't run too fast - * On a 60 Mhz Pentium this takes 34 msec, so you would - * need 30 seconds to build a 1000 entry dictionary... - */ - for(i = 0; i < 1000; i++) { - MD5_Init(&ctx1); - if (i & 1) - MD5_Update(&ctx1, pw, strlen(pw)); - else - MD5_Update(&ctx1, final, 16); - - if (i % 3) - MD5_Update(&ctx1, sp, sl); - - if (i % 7) - MD5_Update(&ctx1, pw, strlen(pw)); - - if (i & 1) - MD5_Update(&ctx1, final, 16); - else - MD5_Update(&ctx1, pw, strlen(pw)); - - MD5_Final(final, &ctx1); - } - - l = (final[ 0]<<16) | (final[ 6]<<8) | final[12]; - strlcat(passwd, to64(l, 4), sizeof(passwd)); - l = (final[ 1]<<16) | (final[ 7]<<8) | final[13]; - strlcat(passwd, to64(l, 4), sizeof(passwd)); - l = (final[ 2]<<16) | (final[ 8]<<8) | final[14]; - strlcat(passwd, to64(l, 4), sizeof(passwd)); - l = (final[ 3]<<16) | (final[ 9]<<8) | final[15]; - strlcat(passwd, to64(l, 4), sizeof(passwd)); - l = (final[ 4]<<16) | (final[10]<<8) | final[ 5]; - strlcat(passwd, to64(l, 4), sizeof(passwd)); - l = final[11] ; - strlcat(passwd, to64(l, 2), sizeof(passwd)); - - /* Don't leave anything around in vm they could use. */ - memset(final, 0, sizeof(final)); - memset(salt_copy, 0, sizeof(salt_copy)); - memset(&ctx, 0, sizeof(ctx)); - memset(&ctx1, 0, sizeof(ctx1)); - (void)to64(0, 4); - - return (passwd); -} - -#endif /* defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) */ diff --git a/md5crypt.h b/md5crypt.h deleted file mode 100644 index 978e579c86d..00000000000 --- a/md5crypt.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * ---------------------------------------------------------------------------- - * "THE BEER-WARE LICENSE" (Revision 42): - * wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp - * ---------------------------------------------------------------------------- - */ - -#ifndef _MD5CRYPT_H -#define _MD5CRYPT_H - -#include "config.h" - -#if defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) - -int is_md5_salt(const char *); -char *md5_crypt(const char *, const char *); - -#endif /* defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) */ - -#endif /* MD5CRYPT_H */ diff --git a/misc.c b/misc.c index b0ece2442cc..417498deb7a 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.164 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.174 2022/02/11 00:43:56 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -56,6 +56,7 @@ #ifdef HAVE_PATHS_H # include #include +#include #endif #ifdef SSH_TUN_OPENBSD #include @@ -85,6 +86,20 @@ chop(char *s) } +/* remove whitespace from end of string */ +void +rtrim(char *s) +{ + size_t i; + + if ((i = strlen(s)) == 0) + return; + for (i--; i > 0; i--) { + if (isspace((int)s[i])) + s[i] = '\0'; + } +} + /* set/unset filedescriptor to non-blocking */ int set_nonblock(int fd) @@ -445,7 +460,7 @@ pwcopy(struct passwd *pw) struct passwd *copy = xcalloc(1, sizeof(*copy)); copy->pw_name = xstrdup(pw->pw_name); - copy->pw_passwd = xstrdup(pw->pw_passwd); + copy->pw_passwd = xstrdup(pw->pw_passwd == NULL ? "*" : pw->pw_passwd); #ifdef HAVE_STRUCT_PASSWD_PW_GECOS copy->pw_gecos = xstrdup(pw->pw_gecos); #endif @@ -704,10 +719,16 @@ hpdelim2(char **cp, char *delim) return old; } +/* The common case: only accept colon as delimiter. */ char * hpdelim(char **cp) { - return hpdelim2(cp, NULL); + char *r, delim = '\0'; + + r = hpdelim2(cp, &delim); + if (delim == '/') + return NULL; + return r; } char * @@ -1101,45 +1122,82 @@ freeargs(arglist *args) * Expands tildes in the file name. Returns data allocated by xmalloc. * Warning: this calls getpw*. */ -char * -tilde_expand_filename(const char *filename, uid_t uid) +int +tilde_expand(const char *filename, uid_t uid, char **retp) { - const char *path, *sep; - char user[128], *ret; + char *ocopy = NULL, *copy, *s = NULL; + const char *path = NULL, *user = NULL; struct passwd *pw; - u_int len, slash; - - if (*filename != '~') - return (xstrdup(filename)); - filename++; - - path = strchr(filename, '/'); - if (path != NULL && path > filename) { /* ~user/path */ - slash = path - filename; - if (slash > sizeof(user) - 1) - fatal("tilde_expand_filename: ~username too long"); - memcpy(user, filename, slash); - user[slash] = '\0'; - if ((pw = getpwnam(user)) == NULL) - fatal("tilde_expand_filename: No such user %s", user); - } else if ((pw = getpwuid(uid)) == NULL) /* ~/path */ - fatal("tilde_expand_filename: No such uid %ld", (long)uid); + size_t len; + int ret = -1, r, slash; + + *retp = NULL; + if (*filename != '~') { + *retp = xstrdup(filename); + return 0; + } + ocopy = copy = xstrdup(filename + 1); + + if (*copy == '\0') /* ~ */ + path = NULL; + else if (*copy == '/') { + copy += strspn(copy, "/"); + if (*copy == '\0') + path = NULL; /* ~/ */ + else + path = copy; /* ~/path */ + } else { + user = copy; + if ((path = strchr(copy, '/')) != NULL) { + copy[path - copy] = '\0'; + path++; + path += strspn(path, "/"); + if (*path == '\0') /* ~user/ */ + path = NULL; + /* else ~user/path */ + } + /* else ~user */ + } + if (user != NULL) { + if ((pw = getpwnam(user)) == NULL) { + error_f("No such user %s", user); + goto out; + } + } else if ((pw = getpwuid(uid)) == NULL) { + error_f("No such uid %ld", (long)uid); + goto out; + } /* Make sure directory has a trailing '/' */ - len = strlen(pw->pw_dir); - if (len == 0 || pw->pw_dir[len - 1] != '/') - sep = "/"; - else - sep = ""; + slash = (len = strlen(pw->pw_dir)) == 0 || pw->pw_dir[len - 1] != '/'; - /* Skip leading '/' from specified path */ - if (path != NULL) - filename = path + 1; + if ((r = xasprintf(&s, "%s%s%s", pw->pw_dir, + slash ? "/" : "", path != NULL ? path : "")) <= 0) { + error_f("xasprintf failed"); + goto out; + } + if (r >= PATH_MAX) { + error_f("Path too long"); + goto out; + } + /* success */ + ret = 0; + *retp = s; + s = NULL; + out: + free(s); + free(ocopy); + return ret; +} - if (xasprintf(&ret, "%s%s%s", pw->pw_dir, sep, filename) >= PATH_MAX) - fatal("tilde_expand_filename: Path too long"); +char * +tilde_expand_filename(const char *filename, uid_t uid) +{ + char *ret; - return (ret); + if (tilde_expand(filename, uid, &ret) != 0) + cleanup_exit(255); + return ret; } /* @@ -1580,12 +1638,12 @@ ms_subtract_diff(struct timeval *start, int *ms) } void -ms_to_timeval(struct timeval *tv, int ms) +ms_to_timespec(struct timespec *ts, int ms) { if (ms < 0) ms = 0; - tv->tv_sec = ms / 1000; - tv->tv_usec = (ms % 1000) * 1000; + ts->tv_sec = ms / 1000; + ts->tv_nsec = (ms % 1000) * 1000 * 1000; } void @@ -1912,14 +1970,13 @@ daemonized(void) return 1; } - /* * Splits 's' into an argument vector. Handles quoted string and basic * escape characters (\\, \", \'). Caller must free the argument vector * and its members. */ int -argv_split(const char *s, int *argcp, char ***argvp) +argv_split(const char *s, int *argcp, char ***argvp, int terminate_on_comment) { int r = SSH_ERR_INTERNAL_ERROR; int argc = 0, quote, i, j; @@ -1932,7 +1989,8 @@ argv_split(const char *s, int *argcp, char ***argvp) /* Skip leading whitespace */ if (s[i] == ' ' || s[i] == '\t') continue; - + if (terminate_on_comment && s[i] == '#') + break; /* Start of a token */ quote = 0; @@ -1945,7 +2003,8 @@ argv_split(const char *s, int *argcp, char ***argvp) if (s[i] == '\\') { if (s[i + 1] == '\'' || s[i + 1] == '\"' || - s[i + 1] == '\\') { + s[i + 1] == '\\' || + (quote == 0 && s[i + 1] == ' ')) { i++; /* Skip '\' */ arg[j++] = s[i]; } else { @@ -2039,6 +2098,36 @@ argv_assemble(int argc, char **argv) return ret; } +char * +argv_next(int *argcp, char ***argvp) +{ + char *ret = (*argvp)[0]; + + if (*argcp > 0 && ret != NULL) { + (*argcp)--; + (*argvp)++; + } + return ret; +} + +void +argv_consume(int *argcp) +{ + *argcp = 0; +} + +void +argv_free(char **av, int ac) +{ + int i; + + if (av == NULL) + return; + for (i = 0; i < ac; i++) + free(av[i]); + free(av); +} + /* Returns 0 if pid exited cleanly, non-zero otherwise */ int exited_cleanly(pid_t pid, const char *tag, const char *cmd, int quiet) @@ -2338,10 +2427,13 @@ parse_absolute_time(const char *s, uint64_t *tp) return 0; } +/* On OpenBSD time_t is int64_t which is long long. */ +/* #define SSH_TIME_T_MAX LLONG_MAX */ + void format_absolute_time(uint64_t t, char *buf, size_t len) { - time_t tt = t > INT_MAX ? INT_MAX : t; /* XXX revisit in 2038 :P */ + time_t tt = t > SSH_TIME_T_MAX ? SSH_TIME_T_MAX : t; struct tm tm; localtime_r(&tt, &tm); @@ -2626,6 +2718,12 @@ subprocess(const char *tag, const char *command, } closefrom(STDERR_FILENO + 1); + if (geteuid() == 0 && + initgroups(pw->pw_name, pw->pw_gid) == -1) { + error("%s: initgroups(%s, %u): %s", tag, + pw->pw_name, (u_int)pw->pw_gid, strerror(errno)); + _exit(1); + } if (setresgid(pw->pw_gid, pw->pw_gid, pw->pw_gid) == -1) { error("%s: setresgid %u: %s", tag, (u_int)pw->pw_gid, strerror(errno)); @@ -2671,3 +2769,18 @@ subprocess(const char *tag, const char *command, *child = f; return pid; } + +const char * +lookup_env_in_list(const char *env, char * const *envs, size_t nenvs) +{ + size_t i, envlen; + + envlen = strlen(env); + for (i = 0; i < nenvs; i++) { + if (strncmp(envs[i], env, envlen) == 0 && + envs[i][envlen] == '=') { + return envs[i] + envlen + 1; + } + } + return NULL; +} diff --git a/misc.h b/misc.h index 58914bd7f12..2e1b5fecaa0 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.95 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: misc.h,v 1.99 2021/11/13 21:14:13 deraadt Exp $ */ /* * Author: Tatu Ylonen @@ -45,6 +45,7 @@ struct ForwardOptions { /* misc.c */ char *chop(char *); +void rtrim(char *); void skip_space(char **); char *strdelim(char **); char *strdelimw(char **); @@ -70,6 +71,7 @@ int parse_user_host_port(const char *, char **, char **, int *); int parse_uri(const char *, const char *, char **, char **, int *, char **); int convtime(const char *); const char *fmt_timeframe(time_t t); +int tilde_expand(const char *, uid_t, char **); char *tilde_expand_filename(const char *, uid_t); char *dollar_expand(int *, const char *string, ...); @@ -80,7 +82,7 @@ void xextendf(char **s, const char *sep, const char *fmt, ...) __attribute__((__format__ (printf, 3, 4))) __attribute__((__nonnull__ (3))); void sanitise_stdfd(void); void ms_subtract_diff(struct timeval *, int *); -void ms_to_timeval(struct timeval *, int); +void ms_to_timespec(struct timespec *, int); void monotime_ts(struct timespec *); void monotime_tv(struct timeval *); time_t monotime(void); @@ -175,9 +177,15 @@ void mktemp_proto(char *, size_t); void child_set_env(char ***envp, u_int *envsizep, const char *name, const char *value); +const char *lookup_env_in_list(const char *env, + char * const *envs, size_t nenvs); -int argv_split(const char *, int *, char ***); +int argv_split(const char *, int *, char ***, int); char *argv_assemble(int, char **argv); +char *argv_next(int *, char ***); +void argv_consume(int *); +void argv_free(char **, int); + int exited_cleanly(pid_t, const char *, const char *, int); struct stat; diff --git a/moduli b/moduli index 5b788a88385..1362f20e1bd 100644 --- a/moduli +++ b/moduli @@ -1,447 +1,383 @@ -# $OpenBSD: moduli,v 1.29 2021/03/10 06:32:27 dtucker Exp $ +# $OpenBSD: moduli,v 1.31 2021/09/28 11:10:05 dtucker Exp $ # Time Type Tests Tries Size Generator Modulus -20200930103859 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AA67732B -20200930104218 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AAEC16F3 -20200930104319 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AB1310F3 -20200930104333 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AB14C093 -20200930104405 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AB297677 -20200930104620 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AB8E47BF -20200930104658 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ABA427AB -20200930104713 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ABA93727 -20200930104858 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ABEB0CD3 -20200930104955 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AC09DF6F -20200930105245 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ACB5C36F -20200930105334 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ACCD80EB -20200930105514 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AD0A024B -20200930105705 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AD4DA807 -20200930105838 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AD8515A7 -20200930105923 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AD99A2F3 -20200930110024 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ADB9659B -20200930110055 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37ADC6CD9B -20200930110307 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE16257B -20200930110335 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE200B43 -20200930110447 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE487643 -20200930110501 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE49A30F -20200930110640 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE7CB41F -20200930110705 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AE850193 -20200930110828 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AEAFC643 -20200930110947 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AED939F7 -20200930111052 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AEF8958B -20200930111318 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AF484B07 -20200930111345 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AF506FB3 -20200930111558 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37AF9D1DEB -20200930111857 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B006FBA3 -20200930112128 2 6 100 2047 5 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B05EE957 -20200930112416 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B0C3E9BB -20200930112439 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B0CC77D3 -20200930112529 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B0E3D873 -20200930112751 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B13355D3 -20200930112903 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B15BABBB -20200930113019 2 6 100 2047 2 DD19D852DB5639810688F04A26C29999BB806D2F7C80880AE35BD4C2EBBD49BC5D2A326B03C5BF96777DE50D0F5C2AA928A46F550D5F5DF6AD619FB1F38E432B4EBB3B39FD49A6A8F187DD4BC7E541B6390033BFAE92E64020DF00C57DE1F9A51B66686EDADAD07C72CAAE33110A635484746BBF6A592A9A14B7A96754FDF1FFA3AE383A60927C0E03B9F959396D1FC452A404C1BF28BB914EAF591452865923778A99AA3608F899057C9DDAD66206E89621BDEEF2BFEB7B2D045CE3BA93AAA7A89121A5ED43C2CED0F22E271964741193E83C51DDCEE04A3ACD21C954EDFAF578547F85A4A62FE6B62D20BC2C6803302ACE817B64189EC9677C2D37B184B2A3 -20200930113412 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC5488ED437 -20200930113500 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC548A601CB -20200930113748 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549036A23 -20200930113832 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549165F87 -20200930113959 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549496DBB -20200930114037 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC5495B861B -20200930114050 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC5495C68CB -20200930114255 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549A6EB2B -20200930114431 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549E07B43 -20200930114445 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC549E2CF23 -20200930114719 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54A3E7F8F -20200930114810 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54A563DEF -20200930115248 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B012D4B -20200930115431 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B397777 -20200930115527 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B553237 -20200930115559 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B625363 -20200930115639 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B764653 -20200930115714 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54B85426F -20200930115814 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54BA69D8F -20200930120314 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54C7285E3 -20200930120351 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54C86F583 -20200930120424 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54C93ECD3 -20200930120459 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54CA6ADC3 -20200930120535 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54CB82843 -20200930120634 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54CDD2F6B -20200930120740 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D05106B -20200930120808 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D124907 -20200930120902 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D35556B -20200930121004 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D5D58A3 -20200930121027 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D66AA1B -20200930121059 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54D798D2B -20200930121232 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54DB2997F -20200930121533 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54E249FBB -20200930121602 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54E30E23F -20200930121739 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54E67F36F -20200930121847 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54E8E56D3 -20200930122206 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54F05DEC7 -20200930122413 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54F513B07 -20200930122512 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54F712233 -20200930122719 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54FBCFD33 -20200930122737 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC54FC0216F -20200930122956 2 6 100 2047 5 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC550170507 -20200930123106 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC5503F0863 -20200930123146 2 6 100 2047 2 D9F77C62B924E4DC2FFF6682F124D0F01627EC2634654DF4A2447BF0F88EE3DE63675303C39FFEC329B8AB02FA7A4E35210B3AD9805B032A5AFC0835D65DA3A522477694920B4328A2EF80DCAD164A4A80AFDFD6E2D47020282DBB4F1CF132226C07C27E4948057A504B0B52FF665FA792E1DE498B3931270A6244FE4F116407BA08B00AC2CAFBF6D3C6C37EF7F5B9D155545E1D014F7D057F820182EB35B125669E9B87569A55EBE6DF6DC3230B31ACC0560EF1D4BEC78CBE46E203E57086AC96A74FFFD90F545E7845236E71E4329ED8281CF3819CA14B162D51CC58EC73BF462AE605FC548E41DE2479E3A006EA0E9EDB4ABAEFB5A7C0FA976FC5504FBFFB -20200930131958 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BBCE046BF -20200930133333 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BBDB3497F -20200930134619 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BBE93B7DB -20200930134843 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BBEB9F86B -20200930140124 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BBFB429AB -20200930140701 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC025DBE7 -20200930141445 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC0B94697 -20200930141618 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC0D070FB -20200930142039 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC12AB823 -20200930142500 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC18EE2A3 -20200930143133 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC2223D33 -20200930143655 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC2914A47 -20200930144031 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC2DF100F -20200930145023 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC3CD7DDF -20200930145245 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC40476EB -20200930145745 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC47CF4D3 -20200930150246 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC4F4DC13 -20200930150400 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC50F13BB -20200930151224 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC5D3446B -20200930151334 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC5E84957 -20200930151946 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC67BC6EB -20200930152246 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC6BE4C0B -20200930152442 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC6E58FEB -20200930152517 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC6EC7283 -20200930152544 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC6EFB5D3 -20200930153147 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC76614BB -20200930154247 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC876E263 -20200930154655 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC8D835FF -20200930155510 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC9A5DD53 -20200930155644 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC9C54223 -20200930155841 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BC9EF4E9B -20200930155951 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCA0893BB -20200930160156 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCA39256B -20200930160335 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCA58F26F -20200930160458 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCA79E25B -20200930161250 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCB3CD967 -20200930161643 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCB9AE923 -20200930162043 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCBFC8D17 -20200930162137 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCC0AE5BF -20200930162454 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCC5E286B -20200930162948 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCCD410A3 -20200930163811 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCDA71C3F -20200930163852 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCDAE81E7 -20200930164250 2 6 100 3071 5 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCE0B29AF -20200930164410 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCE25DA3B -20200930164557 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCE4CECFB -20200930164800 2 6 100 3071 2 D0F2B3CC37A29DF5AD1623D003ABD0987230EA8A417A02839C436A9E9C7A0581A9234176BC0F0F2F450158718D0C2F35AD83181A4C36AD0483D8FA07EB282666AF859B9DC8FF9F9EACBC804D8114277653AD082DF50DC8A4E1A7F012922A198E6677002FDB48F92F84A794C19621BA3997975245D6A441A0C3D92F742719B67C5C356F6EB229A0F004CF1A5F7908F18EB783934B5E3311593CCC3B88C41010CD5F0D0B63BB169E0410D9C5C1FF4E5798ADAFDE92ACEB42C0147EA12DCD59EDC0C354CF167219C9D2C7A2CEF76FECB233986FD48AAF3B9379537D8EDDD67C517A7134F188307C8C16E6D125425EB82E23625D51851463A06A71E0C91A1BB78BAF49535DFB51195C9755F3EAAC761A17803FB292A228E1109FCA837A8B8F7A9696F981F6EF48A6F285C00EB5750D8C61414C742EDDAEC16661219315B9D9A10AA81CDC496B273B0238BC77649D156AF9A031B11FE2B981FABEAEB102802BA8EFA4D743042FBB8C91F0D892469826C60CCBEE44C8167D664672492D564BCE7942D3 -20200930165856 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3633990233 -20200930170645 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36344A3E63 -20200930171201 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3634D3E62B -20200930171432 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3635088CD7 -20200930171818 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36355FD633 -20200930172759 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36365E0643 -20200930173548 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36372023FF -20200930173839 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36375FB73B -20200930174243 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3637C3C17B -20200930174555 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363812F603 -20200930175037 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363880305B -20200930175131 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36388E6AA3 -20200930175228 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36389FD95F -20200930180050 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363972ACC7 -20200930180301 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3639A594D3 -20200930180756 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363A2043C7 -20200930180835 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363A25D30B -20200930180925 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363A32CB4B -20200930181538 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363AD672E7 -20200930181644 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363AEC260F -20200930182258 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363B8D9FCF -20200930182834 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363C161663 -20200930182932 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363C26369F -20200930183140 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363C575C93 -20200930183452 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363CA60763 -20200930184439 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363D9F9553 -20200930185118 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363E462B5B -20200930185600 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363EC13C83 -20200930185646 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363ECAC29F -20200930185830 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363EED78B7 -20200930190150 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363F41A293 -20200930190554 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363FA9D6C3 -20200930190652 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363FBA5D77 -20200930190818 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED363FD4D617 -20200930192133 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36413128DF -20200930192506 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36418D031B -20200930192844 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3641E7B13F -20200930193716 2 6 100 3071 2 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED3642C5CDB3 -20200930195325 2 6 100 3071 5 E1009A27E8B33EC315331CCC6530EA1D6D434442F56A84A4F51EA47D915025BFF9A55E9225FD0D3829930D7469978A8BFC8DCC85703DD2C4B5297BE134E93D7EA72E4B7D18D62F10DFB196707CF4975EAE036E83D6302A61568111787BBAEEA6C483F9F68601017B48932924651B07EF5509BB5B208B298927A43A96E12E110C3EA911693EF9DB4094834D862A8C9AE60C3D21507E2E634573DA325298D02D99130007973CC2F7C95C0BAA1B2B4644D0E9E21880F665498462D8F041B6D2C95085AB34A8E490411014B3573AB9902F2F70FD3A48C7A7B0076AD1C8B073295851A590D578DE130CDAD896ABD2AEEDE74FB72D1A842B84A47C045248ABE149D10E1B7CD67F78B65573EA15B0088026C22D41CCF95E2F7CCDCBD70F3B685805186B7241568C03F2DE6BE72EB1FF91F9B811E168CF1A0DC6B1D2D9AC69AFB450583E8FFB2682158E10B120D750C75159058D04B27F1350012B484FFF93FDAAEB819C9D0F632E3358AE410E242494713E715E3F9150FE0882CC06153EED36447A6037 -20200930203427 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D121E283097 -20200930212141 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12206F330F -20200930213623 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12211E084B -20200930221333 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1221896A17 -20200930221945 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1221B2485B -20200930232214 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12227A70A3 -20201001002356 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1222FF2E9F -20201001004540 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12235AC837 -20201001004636 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12235B75FB -20201001043411 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1225B50D17 -20201001043728 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1225CB099B -20201001050054 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12268D7CA7 -20201001054849 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12282033E3 -20201001070929 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122AF5291F -20201001072234 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122B6EFDEB -20201001075250 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122C8CF0D3 -20201001075437 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122C94354B -20201001080649 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122D0186B3 -20201001081829 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D122D66125F -20201001093449 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D123048EE7F -20201001093748 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12305B5857 -20201001094150 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12307B06CB -20201001095043 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1230C795B3 -20201001100350 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12313BC2DB -20201001104031 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1232922ECF -20201001105657 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12332F3B07 -20201001112635 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12344498B7 -20201001112836 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12344E3D63 -20201001114337 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1234D9384F -20201001115808 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12355D26AF -20201001120939 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1235C35313 -20201001122331 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D12363C302F -20201001124432 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1236FFFF6B -20201001125356 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D123754B623 -20201001130844 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1237DAB06F -20201001131243 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1237F8E297 -20201001133149 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1238A92C87 -20201001140357 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D1239DBC1AF -20201001142245 2 6 100 4095 2 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D123A811F7B -20201001150145 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D123BDFE8AF -20201001153400 2 6 100 4095 5 FF1950A9D266D427EB8A232ACAF44612A47682EB0B8C89257EAE4D9F586CFC514878E79DF5A708945A9B2C5441A7708EC3904EC7C6C31424F23D30B14791B5A1DE417FAC45773E1A4FDFEC320C0BE611CE6BF0CFCD5EA9DB5F1878E04094441A35F9D22109EDBCE9AB6B9E433B1301C6A7921AF2590E84434B58DC8CEB83FD24C080D1998E9A6BBF7BB9BFB218FBFB6B0BC2CA7CCC260D7E1443E18B85CFF71724F21B9C855557CDC2C490A496D31E0746CAC6A6012553E013B38CE7F394E664034E137AA4750C72A5560F4DBE9B0B28D82D5EB560FE4211F5280F35811C65365C386CEA8B30B8AEAE43D61B053AAB32C41B582B24D0C1FADC212DBD52559CC8E1AC18A548D1A6EDBC47AB15E86CCEF826776C09E07262777147308C407D5DFC7E1A1364370FFA5B5D57845F148C2FD86C4CF7EA2173AC66BE202F3A1C33E68F1151328271B058974D26F7755D2114BC0D96E5B15025D0B0F66221F391AA4FDF8AE7C99C1FD4B54B42AE06EA094ACB81D66C37B628136525D31AE7CD4A63CB35DE81B7D33D8B721915DE58689F4D7D182619361CA5F76680F2B85D674DDF3875C0520B22A6C8EF96CB304D9CB2461F152AAEA09F8E976B9A46E98F7BFF7F29F09129107B2C3F427E71DB802B8EF9A8BCFB819BADDFDD8CC9AAD1EB51E78C5C31BD1176727C2538313AED63F01FF037E26AE225EEF011392B64BD2D123CFF695F -20201001160243 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F92DE577B -20201001170341 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F95291CDB -20201001180757 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9796CF73 -20201001181955 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F97FF1F0F -20201001182457 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9828801B -20201001184200 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F98C75E07 -20201001210558 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9E43BE07 -20201001212737 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9F0A37B7 -20201001212838 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9F0B5457 -20201001213858 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9F68AB57 -20201001214136 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607F9F761B13 -20201001221702 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA0C0896B -20201001224659 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA1D48B9F -20201001231459 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA2DCDC9F -20201002001557 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA5293EC7 -20201002011559 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA768B563 -20201002011835 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA774F6BB -20201002014757 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA88C774F -20201002015750 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FA8E1C2FF -20201002024356 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FAA91DF73 -20201002024735 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FAAA9836F -20201002024957 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FAABA24AB -20201002031500 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FABA7157B -20201002040434 2 6 100 4095 5 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FAD709107 -20201002045704 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FAF572503 -20201002061053 2 6 100 4095 2 E2C28B8617B3FEA1703BB9D3CB9518575094744626E5585F741511C44A4DBF419A7B4EAFBBD14DBBA20CD669577AC7CFEB5C93E951D6F2A5A194FC3C16282C2C0DF160DBB439B67D6D49AF4F7879F8D679923E29E4063872399198A86EEDA598C481B77427CE7EF3E56BE86A00460DE9834E8B40B205B3380BD392A83B927C4A49644C801A3568496CB2687B08091553DD8059D8FD8C21604067A3A0223E5188FEE3064BE5C678C7CA9EA9ADA446AF462A6412B11EBA7DAFC7886A2B9D1FC494ECFA41A5D4830FDAEFA3F1168753E9FF51DE1C3390A00C29AAC16630397A61B96B7D5A18FD5B57A18A5271A8C2FC25BBEF730CCB2DE2B590B9491161B4DE310EABD2D60C4DF8CA703D19A13DE58D562B7561EAA4E27B25BE5B61D71F97CFF4B0F3FC0DC89622B0EF252E1C9616F0447553CFF22FD7198483652D901BB9316F5B713BA475DD9BFFA8501B19B2BC79EDD41320AFB94B48F274F0C5822A02EF1D53A94EAE036FCCB8082AF1E58EEFA617D22FAF56FFB0A9501367737D1DD337BAC4E4E72DFDBF90F6A256E7ABD09FBAE7D54E092005838DE90324B1DE72C547FC4C755E3374F24600B7180E8AD18FFAB46ACD869BB04FCED13EE9697BEF19FFD3B072D90C67F2D5E250B4272487A84F4F4BAD3B2CE442B6C43C6BAD6769B557DBBA81C7FDBDF968C4E573BE3EC843616EA72654B9B3FAFD7B7BFFB7607FB20F6B6B -20201002074332 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346552B8B83 -20201002074853 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346553476CB -20201002091337 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3465645C7CB -20201002142139 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3465A322A33 -20201002152133 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3465AEC6C1B -20201002153735 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3465B14A583 -20201002232438 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34660F939B3 -20201003163937 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34662F17E83 -20201003174335 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34663EDC143 -20201003181552 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346646B5843 -20201003183800 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34664C050D7 -20201003204020 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34666AA62F7 -20201003205151 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34666D033EB -20201004015235 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3466BE5911F -20201004021543 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3466C4163AB -20201004024523 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3466CBA09CB -20201004035043 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3466DD63DE3 -20201004082640 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34672816CD7 -20201004090437 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346731E155B -20201004093742 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34673A25113 -20201004131132 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3467738EC47 -20201004145042 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34678D108D3 -20201004163923 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3467A690F9F -20201004230643 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346800C7B27 -20201004235413 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34680AEEF73 -20201005014706 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3468252BDFF -20201005024434 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3468341BA4F -20201005030558 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34683932AF3 -20201005055647 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346865E7FA3 -20201005061138 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34686945117 -20201005062031 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34686B2CB93 -20201005064657 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346871DBCEB -20201005070706 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346876960BF -20201005071036 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346876F40F7 -20201005091658 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346897E0C33 -20201005145338 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3468EF9163F -20201005190527 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469321BB4F -20201005205529 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34694F47DC7 -20201005224734 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34696CF509F -20201005230339 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC346970CE03B -20201005230714 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469713E643 -20201006014521 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34699AA76D7 -20201006015351 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC34699C5B68B -20201006025138 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469ABB46E3 -20201006031630 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469B1F8423 -20201006034858 2 6 100 6143 5 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469BA1ABAF -20201006051131 2 6 100 6143 2 E5AFFE1F31466A1BE4039398F290C9CEE2D03FBDED18E2E034E872E714AB7B7FB8F2E9A798D0E2C53B49722FE0AA884A349ADD9FA7A8D4F1FD3E38C1D35697F054D96566127016CF7C0618E8B3C4F875D08E61359923B77E8012F43F2FE10E538F0BD34644F84F2F545DA683C0D148BAE62FC69A7D3EE24A6B5726BBF970A711091105B4084DAA923AE2C1DBF9D8C024E2F641BDDCFD8FB96B4B46C6D279B26E45CA8CF335448422A3F20C65BC05A12F62229F9FED22B1B912A0390DFF1360012528E3C287E09C1C89AA140F524804915FA0C84715F887615F5AE67D7D63BA48C75E192BD364C6E0C0F0377B788017879CB352FD50786C34DABA7F7AB6CF6455A90577DCDC5B06586A06E2A14E6447697FD09D0A9F1B92B831CD4EEAAD0105C6BE0168753106AEA5479A73054E76CFC2566F0284E3157444E05C61A5261A10B736B63EDA6BA54DE994F78877F13882FA53362C3819A4F3903E7BF7A5368EA4F5C20FDE4027AF86B6427FBB0FA76EDCA0D9568A1F489A14B3E2D32F8EAB69AB7968BAC3854FE2438697E75C80B02DDB654E3415B5DD7679B961DB83E6780B761FAB21952531180E55E950FA857B92AEC62AB206192AADD19E3C15B8535DBDFCA6E0EDF3C78B19DF447DF55544CF0DBFFCAD14F2DCF04CAE3BF8F114B0C9840A71F0E6164C4D794576F784AB8B02181E91C7889FFC5E07B7DA8A020768BE1A1C38FECA405AEEC5CAFF565580C7BD8F3B253F644AE36D4CAB288D722E75FE3589816633E51CB5B3006502BD334817F52F4A4EDA5000550E112C1FF20C8FEB1B3817B1962D0A6C4DDB0962481137105CC8578655CAB1F9AFF21E940334BFD6865818B1DF6FDC45366919AF6FB090A7A8F462432475DBDBF7283299841923BA6C8FD898FC3E1265200454277B982A2448E7A1FF988987FBB28EE99B6C23CD90616BCFAE9C6F37FE76ABE02471ABD2893E1463DE6B5D9CAF5834626DBAD677EDEBD9F9F12D49806EAC5F47EE3478E9FF807988A0A660949904DD56181347E9C51084746AB0091D1D1971C6D3114628AF5436671FB9081BE04E9203193DC3469CFA587B -20201006053954 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001ECC7BF5B -20201006064528 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001EDF81BAF -20201006093842 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001F11E3503 -20201006121934 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001F3FF0177 -20201006153835 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001F786BCDF -20201006170235 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001F901D577 -20201006182016 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001FA6168FB -20201006191339 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001FB522CBB -20201006195142 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001FBF4754B -20201006211554 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001FD6BE76F -20201006212227 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741001FD7FE12B -20201007024718 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741002032B9907 -20201007045343 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100204BFAA1B -20201007051121 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100205076413 -20201007100412 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100208CEB647 -20201007105152 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741002099A8B4B -20201007184739 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100211D63A67 -20201007185842 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410021200590F -20201007203729 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100213B2D4BB -20201007222649 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741002158A0683 -20201007223626 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100215AD592B -20201008020122 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100218F8249F -20201008032338 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100219D09A5F -20201008043839 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410021ABC6F43 -20201008075139 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410021BF1E2F3 -20201008170038 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410021F0268C3 -20201008213147 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410022246D527 -20201009054743 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741002281358D7 -20201009131236 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410022A23103B -20201009144009 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410022B121897 -20201009171246 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410022CBB3DEB -20201009192053 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D7410022E25ED7B -20201010012452 2 6 100 6143 5 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D741002322EB987 -20201010035137 2 6 100 6143 2 F410017F9AF266B6BCEF66D7F7275A68046DB5CC083716B6FF98473EC618ADA763E5597D86382DFDBB196A85A0052A538B3F9EE034D42C5F3E853E5FADEBB28906808929594908915DA9E30C5D536E32DE63422019874E7CA4E78D40377CCEC9195334FFE9154A2EB1BF284125D96884A83C6E40E6C5E95EDF8F8B9D216EEB8A1E4C23AED0E369EC8F539E448BDB2FDAB8A6FB1D3028761215BAFDE14FAC330E5BE737CF21EC2B404E662CC938176B9397C834CA1542FDC38B5B3318A81EB5AC8953EB2F1A1C44FAEE2B3BD8F4873AE5EDEEB6873A5BB0C6839A40DB49B8E31A7FFF887506CBCE5F073C9EF4FC4800E56BB398EE503592B4D7B125D9810A144F0C311F086237324EAB4C44FC58488FB9743A1C7FD9159B229EDD210F6A867EBDE32540227EFC30079EE523D0C2B8F1741F23D146F2C5AB1C65E6BA70AE84CB95855A7D36141C5F1E99A1C50F80164E2F395972C0987200A9FA69A2186F4F40F3A59D7AEF13F21EC0F6991B25C8EA953C8686FA8D33FD9925478A6FB47881DAE26BAE33242B7B56640E218D0B72C46B99EBCCE6067927811488E503F65F5475DAE38F9501A4EA15C01E8535C1BC3F26129DF44DBE2296AB2D9A5C2F5964F1DA39C9632B7C47C2849431DEC1CC36A318A2272152D12955F1FF3D778C6AE74D788CC123045413F03E5018C7FD4E910CC74573D6D13B37770CFCC6185DA667F1F407559A03255F0A6A3502AC9C90CF2905D3FE21F2007D46B44B834D4AF582A3C16866FF3328C3AD95C3664A80676F78403DF76493C6444FD0C99C634C99B0DDB77C269EE24F52A2AC9D1D07B4BF9D026BD9C7EB3ED69EED20DF479A4746E2AE8C15950D641838A48C8C62363C28B7E92D1825C761BF1E23EEAEFA39FE7E37B7A4F924CB5EBB5E4F1C242E23E543DEDB682A5DAB7A135D06E26F540A27E3D810A6AF98BDBB4F9019A6AC0B5BAF69D5F1D9252B828D765DB1E27D84C523B8A03D786639B49C6C1F689BE8705E81E81DAC297F3E27F3A1AB8DE6415AE57A223426653BB252CE66D84E72111098F2EFAD3D1A5070E6401A95AEC2BC2D74100233C8CA3B -20201010075246 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CD9AF6FAF -20201011005752 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE072FD57 -20201011035835 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE1ABACE3 -20201011045403 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE206506F -20201011060537 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE27A97FB -20201011115031 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE4C9A3CB -20201011133049 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE56A800B -20201011140549 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE5A2017F -20201011155546 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CE6582D4B -20201012201951 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CEF20BA0B -20201012210958 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CEF6C1183 -20201013021520 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CF1335633 -20201013102151 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CF2D63E73 -20201013194804 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842CF7E6D4C7 -20201015013344 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D06CDC71B -20201015042038 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D083DF63B -20201015181014 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D0F9A17D7 -20201016000141 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D12B0733B -20201016010059 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D13320473 -20201016060609 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D15D95FFB -20201016203844 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D1CB8A8DB -20201017073647 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D20D7DD0B -20201017091847 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D219EE067 -20201017175021 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D24FD1EC7 -20201017203342 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D263E40C3 -20201018020027 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D28F52363 -20201018123438 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D2E5C85F7 -20201019034610 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D33CD718F -20201019040103 2 6 100 7679 2 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D33DD1DD3 -20201019172329 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D39DA76EF -20201020150153 2 6 100 7679 5 E0E88C8B4130B3D284A584051788589172810660E9C906C4C2ECCDEA00D86E8937D6BBC63E3440099A392243F42DCBE6A4F61BBCDED0ACBAFD932A02F5D9FF92A497E674EE5FF2BC962FDE0112C4D1856CAD9DA2D5A405B00D39B485E2E548895A2A2131FF7233B5FAADA6FD0DC8F8974837FEB9BE4E249C59A7D4AD006A7D6B9113DCEBB39800DF767CD0349403FAE188B6275F2BB0DDF6DE071E0A9D449FBCCD9F4E228EE2D9B2CEA92B4D00A642A76015EA7D32B8E6EFE9D0D97147725C5F934F634C21F72FAF6F88333CE15F2C7C802E4AFB1EEE46B2F73B2826D910D073761C5BD591083B15B2AE1125B73A1ACBAAD9F0D960B07A7878205FC7D0836A3F2B19E7F12751428DC3172566569E66693B934052927487642B35E69352078C9E3D43CB67C4FB0FB4C94187301CBBDAD8BE2F79B7D935F94D14DD3B112BB8B547422DE7EF283F238C3788AE1598DBA603AF0056B4542BA3539E679719274002E3686E7E635867EB522522E6FAD9FD0E8706226EE54B5C5466B64CD75221AE3B5733C0B5C89915696D3298FC6D170FC5E47F8573A467BC1E874A602F8E03404509A267A19DCD37FDEC7CB493FAF0304E119C1A7F5B8422B869DEE218B104C548FC13B1A929D0CD8648A48F178667509D8C9BBE96AEB662963297E0113A73E8F2F8E7111FC0360D225D24683D6B61FD0021C71AB81287BD22484C595D07D61C086D3DD25D1C3ECAF9AF055FB787792714913C6581A3036170636A140FD591BACE3DD50B9699F5BA74982CEDE088597EC321E0E4557DF6BC22E7F222C2D8856C2A86C98F5D035EA9895405487FFF99131D579F8851AFB137A164549DB4032611CA1006EAE41B32FF6C1CA9D06E39B9F28DAEC34CBE306CB06BFAB4593E00BA1F94C8B39F63AE2527370133AD2F4D677D513B0A7197050742AC1B4DA61E74C233607B609FBB4A76A84DC20B946053984CD2FD84650CD643E5ABA45FD8745F8F75BEE5EDE53F41ED1B988867C3E7035575A36BCE0D850403D667084AE568A748DE9A5B4BCBDAE177E01DB757B0E3D49CBF43ECBC60AC03948B0310F62DF81E11F6354301EDA8AC224A8B7A29DC47F3555FE8EF4984EBDD6366B4F5EF70C45F8E5328FA95524115BF6FEC4744BF0CA3157312B06BBAE6556F593C47AB882BAC8D08DA7C344ADB8783750EA2430E6B4E2D91AF27DF76849E99E6A65A8559A90D8B5CD3824F797CA5B8AB558ED8445D7F712BD2D52333D8DBCAA4276FF707DE6EA058A24A9C5E9AB670DE852D4B27AE34E240249117E55300D841AA98259DE5BD8DFA314593105A5F021CF851531EBB2801B0DD9E461BBC950F85287E2664842D4103CA8F -20201021183337 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E131FE7B74B3 -20201021202448 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E131FF319DAF -20201021213639 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E131FFA89A0B -20201022063057 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132034F99D3 -20201022115254 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132057AB2E7 -20201023091548 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1320E388F3B -20201023155346 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13210E51F83 -20201023164559 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1321134EC0F -20201023191235 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132122BB8FF -20201024021831 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132151C7F0F -20201024074540 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13217561F0F -20201024125958 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132197854A3 -20201025030550 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1321EE79E7B -20201025032329 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1321EFD314B -20201025071942 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13220971ACF -20201025154749 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132240A521B -20201025212128 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13225E3DBA7 -20201026101451 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1322BA1534B -20201026144219 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1322E1B43E7 -20201026175052 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1322FD9F0E3 -20201027065946 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1323743774F -20201027075829 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13237C8D247 -20201027091325 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132386EF5D7 -20201027182322 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1323D730207 -20201027192352 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1323DFBCC5F -20201028065039 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1324455CE7B -20201028072438 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132449B6C73 -20201029012952 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1324DE7EFEB -20201029151546 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1324FFF1267 -20201030020447 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132541F7A77 -20201030080540 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132565E434F -20201030145946 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E132590127CB -20201030213938 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1325B8DAC6F -20201031043834 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E1325E3A7FFB -20201031135651 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13261DCB697 -20201031191235 2 6 100 7679 5 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13263B62007 -20201101074141 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13267FD28B3 -20201101124549 2 6 100 7679 2 EC2D59C5C4EEEDEB50FE8CC4EDB2661541C6FB7B76D2C764FA9BDC7EEC91874D2F03EFF1E495C8E6E28F6D2774C47823A3F735D4C9E2235E6A09D12BE2D44EFE02749DDDD578EFEC411AB997793A43AA266B4C54F2E4A950A810194D3482361F063952E3B2ADC024CF691EE36FEDCA94ED5CBF45FC5B08F766164719991EBDFA75C96975E3D6528AA19154F11F066E56969F9132CA6B0AFA6FB7032853CCC760530E0380E68CA3C1AC755693E25F4A45E80EF3D5F711746A204A48E5C6E92DC0A928C96F5E77FA41BFF01D66CA8A86C21CD2651ED3548225F5EB5F1B2C0BB7CDE4A6E7CCDE9CAF0CB1B779385A4EE55B845D23B5958950154DFCC45640EC6E821C1E67B8E1408B574DEEA98D3258664F351B390C71476E47FECA8ED24F3C8860867A952B5586018C417B527F2E86EF3D0EFCDAFC8B7D21B62521905BF3FE47F6B90A86D19FA57562692189E20B66788DC67DB045B8C5D75032F932616E838B267E2686FD15DAC391B7CFF9BC8B7C64C32D1D95553BE7C39238C2D80E9C63796B474BD9F270ECD0F79137C20DA0E5349B8C20F224115CC24020BFFF7FC2238E83894DFCF0760BC07618A95B35E996840B1655F9826BE3E0E2D993C7E653555697B528B2E9FA1C177728278E56C447C6B783437830EDDB938B931D6DAF9DEA98574720346741A7635D8B7C1010666AD6E108C1AC05F6EF15DD04E6A3B16DE1798F2B61C491D52862B6517AD01353909BDB10D83837EFAC26838ED308474E75207FE738070D7CAA3FD8DBE8480507D8E6C21660DB2A7E933B600C2C8F0EDCED45D9D7E3A05E7A0DB7EE728882AA40D332E2BECD9D48B48C349D48712FCBA01D5804C8F290DB60AD0AF9E3B1E7DC968F11CF96729578A43FEB1317FFE321A8CC1ACF62C290B5DF621FFA4BCABB228ABEF5D573F7CA7123651C126B6DB1CD7A54F7E9C79041B763AC8831C1C0DB2EFA4BCEC3E2A4E21C7BA3D8DA09C6444B4B00254C70D650B59AF22764C71BCBA012B45AC429D8463E2B5708004BF05DB42990C7368B3DE5D9109E8C1301D342FFDCAC9713C78F23AB73922A0C1FF41B8D22F64EB07B60580D34DAB63A43DFA90CFD6AB493917BBB6AD0B9075AB2C34E02CF7375C5499FDCCD7DEE23A201F62AA8474D7F38221CD202507663D0033087FA156E5DE7BE1E8CE9BFAA8955F254B97853C2FB45098A14EB0A51DA2BAA41C0F6A172AAF39839C4B0965AA0FBB92E755590F72B6EE24A0E006170AC9ED4CCC1D9DA4711FB1AE2019F4AFE4FD4D942E3FE04AA995E0F153518C5772CDAEB0545D4ED0C539CAA693968342D2BF4718CA134B2339FC404C0A6EF98E4D1F41810E13269E893A3 -20201102211136 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3517F41C1B -20201104100232 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3524190003 -20201105060459 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE352B3534C3 -20201105221348 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3530AF83DF -20201106144432 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3532F388EB -20201106185057 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE353439AA67 -20201106205758 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3534DBDE9F -20201108084639 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE353FE7CAAB -20201108111802 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3540A8BEE3 -20201110061156 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE354999F6FF -20201110093838 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE354AA4B823 -20201110151143 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE354C50D693 -20201111171657 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3552F4F60B -20201112131542 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3557968743 -20201112142355 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3557E37967 -20201114080059 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE356084D88B -20201114083959 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3560ACB6BB -20201115001553 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3564EE2F57 -20201120223033 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE356F28AE3F -20201121022848 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3570473673 -20201122013144 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE357695B923 -20201122062444 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE3577F6EA23 -20201122185950 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE357B47DF37 -20201123124747 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE357FD02753 -20201123192135 2 6 100 8191 5 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE35819E1A87 -20201124212459 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE35891DC76B -20201126010742 2 6 100 8191 2 F1B12D9320A14F9678850067F9130D8767B7A6E198931A99000937CFE7EEDE8605377479AB32BB47AD82183273900757DBEE9BBDC91459257355DBD3E523235F97FEA3162BAA5F020B81E12CFC85D2DE52517F7CF6448C64597E60675DBFE632696B1C21818EC5E35EF2002FEEC0E061E0C2782549B1BBFD6409CDF616F7D3283FEE82D16E1D44A6FB7802DAB848AFA33E308EB4B517CD239C86205B652B89328746AEB81211CFCFE70B64876D2F6BBA9D74C45D5CE3AA96EC016FCFC13B99C5C55DD4ABB60B35431C90F8BDB281BE1EBBE0054423FB91DB94DEC350598976AF244D86C07E97A171469DE89714F5944C21E92489374CA4C45BDD6A0278750B0FCB29177FF27A382A946CBA9931A98A2676469011B25D0ECBACA7CE710CFCA47C2ED2E9D7DE22E49F56ED7D7D1218C54266720741A687DF37F18ED39A56A067E13D9A8886A67ADEFED30D05F6D0EEA6138CBBF9DD738B406957E08FBB7D6BEC2047DBB314484CA3A4838CA57803F89D90A5130A9CA79364485F58C63AC85D4154A287DEB324D240D253036A17A07AB818535BD7DE1E57DB2646714789447C4A6EBE1538D569DF267BA4CB1DFD3EDFF71D7AF4BFDEADE2912EF0790ACABDFE5B87C7EADED47A0C06B889B47FA85A9F9CC2038C048F930A30772A09991C910DECCAB3F7AF1814F2DF3FF2AE66686E8A010DD4ABF3825491DB8EAEA4D7A957D1F4BF3A060AD3D20F821D76C9F60410E32AA67D1798ECF3F514ED3DCF62348F7739A6ECEC53010A3B656D45A808237ACECE87377C8EA21D89E350D2CB4E31A017981C70718BF681D0A4E216ACF7D950615B4E4B48BA1AD10C436BD466DEB6F61222003FB6C42017A98E780C272DAE2AEE4C3291B0C112918F287BADAB2A22A7DCC78B10D55AB6BF4FD4651F0A8BD9F2CCA24D07BA33B09928C77ADE6F73D1C36247C8D5CC568A337721F9073515B65DB7E7555BADE6F201545EB766A97C3E0780FA67B042DBFBF208F409ABEEAFC6D4C4A9D89693A4E6C041C98A3C200576F4BF22D7C03376FBEB972ECBE96B156212E4A91925515D0C0707C61826C1386D8B7C6F210EF51D566BD847554C47B364C1BC97EC1F316AB9EFCA7B3D2AD326C3E00D4A2A01F1F559119C9702DDA5D1651A83E4107EDDA43FCD824B47591CA2DE11F356C9FB90DFEAF2B625FE65F070171CC558DAB5A1305286274BDCFE6A80155A80025D0CFEE151CD96197E35D2763B59DC20FA90F99597460E60D1069977F9CDCD3F942BAC1178AF9002425CDE4F83CFEFD8288F0154FA615D22D2573FE7C9E66FBD012C9D8FCD1447C095FA3F14A23A6E3A264EC35F97A868828A1ED87DC0434855AD9442DB6FD833CD92CE182691DE15762A973CE94E6E50033B0FC41DE50699848DF71B67A25B42AB8F53CBC348E797FE141BA21ED856ACF2BEE1A2DE358F8CD93B -20201126112257 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52C39B7333 -20201126140745 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52C45E6703 -20201126214355 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52C6780D9B -20201130015948 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52D6D7FA8F -20201130065350 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52D840F33B -20201130145645 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52DABEE3A3 -20201201235732 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52E5502703 -20201202082252 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52E817B86B -20201202104859 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52E8D8B1BF -20201202160137 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52EA838D97 -20201203002758 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52ED4610C7 -20201203025251 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52EE01CD03 -20201203041751 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52EE6A8983 -20201203111152 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52F0A4F47B -20201203145545 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52F1CBE427 -20201205170601 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F52FEF5ADC3 -20201206111756 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5304585883 -20201206134442 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5304DFD00B -20201206210155 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5307041CE3 -20201211131928 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F530E903C57 -20201211155555 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F530FB34647 -20201212050222 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F53159567A7 -20201212065249 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5316666907 -20201212112957 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5318743CAB -20201213055402 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F53209F5C8B -20201213092727 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F53222C28F7 -20201213111750 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5322F62BB7 -20201214024800 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5329702E43 -20201214140453 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F532D4542E3 -20201214145631 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F532D9AB18B -20201215023044 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5332A0951B -20201219175046 2 6 100 8191 5 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F5338F2214F -20201220100836 2 6 100 8191 2 D9DDC7C88FDE577A58F31AEE0835F0FB225841D9D09B3C82716C06C36FBC0F0402761E9F90D2CC5488C1BB87DCBBD138B1CBC24B1A052C8A2F8BE13EDE229AC234A5FDBDB26E73547264DA65F1B4CF41CDCE8D4EBF88CEEC4EFD23CEC8955B06DA81AA15889746DCFB193CD3BECE98DCFC1E429C87F7B72D8AB5C18EC3DDC80020C5246593B9E9BF898EA44485CA1D355188C14042AC06A7FDBCFF51F554AB06B3F8169429C660109DD4B36F6717F9CE25838244000C417BB9802011D9416ADB8A00F0F71A50E50A58CA97F08A6C1EABEEC8B3BD0980E1AD6A7ED70A71E5B5CC7EC87B4EA621CF8EE85FA9B5EB936F890AC6BFAB56CBA7B6E5F5BC758398F4FF239A4FBB300FCCF380CDEDEC74FE498188D9BAC3CA512813F9E2266D4B60C8A5F151ED4BD9753D5FA904C663893F0A859BF467EAC5C3B4F0006F5012EA5A0C65F5110972942A91DE30C1B0B320C54A0A261DB041650A6218A722FA409A839EE1C9F2C96A579B19FBBE420F96E803ACF5A6ADFAEB706AE8262187A436B7ECA3023564A62D5172A0C332EE9F2E46D935C2815F8405F988C5C48017048F9A1C24002D5D72A18C3652D5FE8DA864401A25FAA6EF257C86E501641C3F34FC5614EF5D0F69485E425FC954B83071687E6B752207014BDE88ED10061556D1B6694519AA04BDC6A38D1D57A0A3051DE893FB6BDF70AD8ED60075E7E2C616BF2CB96BE77EA8901464B97C3CF8CE183406FB15ACC9AE372BB6496BFAD79AE677CA62428A8735A8A8730EEA89838F3338A7F596A0BEA48DE878CB867D2BDAF2F40BB67FDCBEF2FEB56907E6567BF2C45B574C8A37049643B78CA2B31AB90AC13EBBCACA3630DE646260C6E37D3D64600E9FB73139ACE1C2FD22FF05B8E4F1E603E98C1BB37BDABDE4704B94121F50F9E1848829E342150406D8545FF66162938162866926937DF23C5F1AC81F0517578C0D9B8CC1D28CA8FDA0E920FA222C67D313CE63F95FF6304E8ECDD595CB796B3771554F90C16FDD7D76F2B231D2FE711D3C088E36E52300B19A82C4B60BECC37DBA9CCD2150F46FF49142DE3F422B1CE5D7AC3B33300C7EE67C19299DB467E37EC6C5F3C6CD33BD98646C35B645528F6DC3FD356E49596989E444C6B8462A9F69DF7F83C26240D51AA7D1707DBFD92E1729794259D966D69F6934427F7C3A86706ECAE13ED69F4B104DD5BA70E36BE82EF52D6E8EE420C11E7C6ABEF4CBF61E61AD071243D6A8B13C4B107150C8D2DA91544D71F3F6B3108D25FD0A3116F65E92E45684BFD7EE7D939CEF0A02675B5B44DED75E336CF2ECC39C72458930E48DDAC2AF194C79EA0CE4EB5181549EFB8B098F9768119B42932945C782512FDE8BD6C39E3BF76120BB926CACE17DFADFE9FECAAEE6ED339C87C05CA8EC214FE9000A6D72A2602DE6110BAF0AB5E30AADB07F53402DD333 +20210524220022 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F806ABBEB +20210524220025 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F807D248B +20210524220034 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F80D9BC9F +20210524220041 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F812A0A37 +20210524220046 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F8155AB97 +20210524220054 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F81B2848B +20210524220056 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F81C13007 +20210524220118 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F82930D03 +20210524220122 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F82BE877B +20210524220127 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F82EBBF97 +20210524220132 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F8320C043 +20210524220137 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F83476BCB +20210524220154 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F83FA204B +20210524220159 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F842A67EB +20210524220217 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F84E7FEDB +20210524220251 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F86503997 +20210524220256 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F867E7587 +20210524220301 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F86A47F7B +20210524220302 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F86A754D3 +20210524220304 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F86BFB23F +20210524220310 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F86F871FB +20210524220313 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87125B7F +20210524220316 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87290AD7 +20210524220323 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F876DECFB +20210524220330 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87B31B33 +20210524220332 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87BD0977 +20210524220333 2 6 100 2047 5 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87C5168F +20210524220335 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87D5CCB3 +20210524220337 2 6 100 2047 2 C117F4B631CA032FD2F00AC0D9A5473D8E56DA246FC44FD594BF5657D399E453728341CC920EE9127729637683D268CA3B62F5CB61C7D4F08D3F202D67DBBBD88498043861190549649D82E7793A1874FE0E8ED0B460E3442DD4DFC2301A1B6D8FA36C7CAD084B2FFEF2205E3CE46B030E4618C7B50656BF9FB60592B1FA32E91E0D536A12E601317F0562F547FF44DF33377ABAB2A2991EC99887712BFD9C78BBAA8759B09577706493F50A416F472D6F7B9532959A8899FACEB55B012E8FE8131AA45E1851FFAA3572E489FF4AAE89ECB583C98CC29ADBB1E9677AE2517D6BC1BC13C5A18A232FAD4CDC6E580FEC730D070D49E88A23C528A4985F87DBEA23 +20210524220355 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A44F8E93 +20210524220404 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A4A0C6AF +20210524220412 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A4EF1E03 +20210524220414 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A4F93C23 +20210524220420 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A535963B +20210524220424 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A5566833 +20210524220425 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A5599617 +20210524220426 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A55EC4A7 +20210524220436 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A5BD5EB7 +20210524220445 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A619258B +20210524220451 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A650122B +20210524220501 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A6B04DA7 +20210524220513 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A725B467 +20210524220528 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A7C40A4B +20210524220537 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A825DA4F +20210524220559 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A906849F +20210524220603 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A92B2543 +20210524220606 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A946A62B +20210524220611 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A96E9F73 +20210524220612 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A9741957 +20210524220613 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A977BF53 +20210524220614 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A9808FE3 +20210524220616 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A994D8CB +20210524220618 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A99CAF0B +20210524220624 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A9D53ABF +20210524220627 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01A9F1F75B +20210524220644 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AAB771E7 +20210524220645 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AAB8D6C3 +20210524220650 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AAE8CD27 +20210524220652 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AAFAE557 +20210524220656 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AB231D03 +20210524220658 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AB2F512F +20210524220700 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AB3ED6AF +20210524220706 2 6 100 2047 5 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01AB7A3DDF +20210524220712 2 6 100 2047 2 CDA33E2E7179C731632DFF6272815DAAC78E971B46095FA70FD7153B8FEC3061C37064D6D6961EA44D04D20222E7071AF123319EE4B70C6C6C7F5EC5BF6F4556A9636794FE249A109E9292CAE57FE40829089D99A5731AC08639F090500DAA9ECD8D56C83368EA05DEB9A1C37C82C0E84396128BF47B2222A7312DC06F7220DB671F16302E8C9ACEB9034E4955EC08E27C9E708FF81884B81CFB3DD2D662D0A60A5DAA91EBD69F564B8B2A565637663A4D444BA4BBEE7F029BB44AE1EA2182F39A1E2ABFDE297432932295FCF1DB704EFCD3A30A9EF881D6090480232D8893B9F7608037E1B5A2A09DD9E590C63ED28A82EFF89135E05E010710FC01ABB48B1B +20210524221547 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505902F721263 +20210524221723 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059030ED9F9B +20210524221800 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903179F84F +20210524221940 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB850590331E399B +20210524222007 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB850590338E4BEB +20210524222013 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB850590339E72DB +20210524222057 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903458ADC7 +20210524222125 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059034C60DC3 +20210524222149 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903527AD67 +20210524222206 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB850590356715BF +20210524222226 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059035B2AF7F +20210524222240 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059035E27D63 +20210524222530 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059038AD337F +20210524222550 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059038FF50F7 +20210524222711 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903A587DBB +20210524222722 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903A7E2593 +20210524222813 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903B518C67 +20210524222821 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903B6BA4B3 +20210524222927 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903C7ADF53 +20210524222944 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903CB9378F +20210524223124 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903E4E0F63 +20210524223132 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505903E680D03 +20210524223318 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505904017708B +20210524223328 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059040391D6B +20210524223340 2 6 100 3071 5 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB8505904064990F +20210524223418 2 6 100 3071 2 C1064E3791D96D66CA94320FDDA0DD731891FE4D4E4BCB5C8C2A22E33BE0C071BDD6B55DF0A474F1123F6AA3CDBB043EE9972052E3422BAAF9CBB6C1E77E2817F0266F0018351110EE2017EDE4312F0E0ABECA6585F15630FE2228BC03E4DEC84F31650177D712CDE77D6D6D2B0B391F64CD792A6C14BF9A16011EE673183465882595613087535464AC29A1138E1FB2B1024693A368700447307B43435E1BC718CD239396943F22BBF861EA0098069CAB7976B13C60A9CDD4BEDE6DF3659D61188E161D2D5A02CADDCCB547319E02211D00445BE47F5484F673239D7796CB1E1D3FF1558DA0ACD3AB17C6B3D8C3F00DFBBBF69F3B600E98DDC1FB0C0F79FC2E2F88C891F7BACAD4023331B623DF6835B2A7E881E59F0B7CE676208717E3AA51FBEDD7E9EE62527F253762C7B6A3D987DF800D2FB66DFE4F9588BEAA938DD9FAA5916186746FBC25A357F57D0E03442EEA6D067F19ABB96865474A250C73F66FE0FC5B5847CAB8F2CE25765A52A27223BD725C7ECFCF55EAAB85059040FCE473 +20210524223453 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB455657B +20210524223634 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB5FCC833 +20210524223659 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB65DD6F3 +20210524223732 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB6E02573 +20210524223739 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB6F4ED87 +20210524223745 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB7068FBB +20210524223826 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB7A2859B +20210524223848 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB7EE3B1B +20210524223936 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB8AE2333 +20210524224015 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB93EC75B +20210524224018 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EB944D10F +20210524224136 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBA7C4FC7 +20210524224213 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBB023E7F +20210524224228 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBB36560F +20210524224236 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBB4F6853 +20210524224323 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBC0F75BB +20210524224346 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBC62CB7B +20210524224413 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBCC9AD0B +20210524224441 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBD2F9967 +20210524224508 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBD92D627 +20210524224722 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBF92432B +20210524224733 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EBFB7A837 +20210524224832 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC09EA30F +20210524224841 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC0B86AD3 +20210524224843 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC0B88DBF +20210524225050 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC2C17DEB +20210524225054 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC2C967DB +20210524225112 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC30CDA43 +20210524225123 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC3311D0F +20210524225247 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC4813D2B +20210524225254 2 6 100 3071 2 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC4923E73 +20210524225346 2 6 100 3071 5 C6D582E2863DD842704EDE65181452A2A54FD6112537B792F2AF066D30656086948D10BD502D46881AA1766656F36A4BDDCCAF0893BA661A1E7952ED0CC9FD481640C27E1513322DA51E6CF68B2659BFED70ACA5F3D45188E2DCE57C05479C7564EB1573D3A039E815105E5BED13E0810D70E388766005C2DE1ADA9855EB53BF83EFABFCB67D8BDC4156C639A547EBDCB3EB980DCD81A44255F1EFCEAE2367482CD7AC7C7B68CA9536B6548F5323C1F46C9ADB084274D82387B7005D7D964CF53F4FCD2EF3337466DEB47BF46DA8501BCDAC4579FE0512B1D6C2AFDF933E9C6B89B25CCD5066B103D59FF1CB96DD4E427520CC06DEE74325885FD48E20E6DA45009CFD337511AF8081C2BC4341306DB2F2BFEB6912F7176D07161162D1BF8B603B0500EDAE3985D29BE88F3F94E98F91A73BA3CCAD9F35EBF6F95F179DA44AD4255AE983FBF8A8BD9458ED7D3AC7E410735FF90ECB32029C5A7D562A33C295F6262E6E91AA15444B971D565A6F90CD898E700B4EE15FE1ADABD3EA6EC562D397 +20210524230435 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375A8B66EEB +20210524230743 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375AA1B04D7 +20210524231138 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375ABDA60AB +20210524231337 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375ACBB313B +20210524231610 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375ADDB3D53 +20210524231810 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375AEB7413F +20210524231830 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375AED5921B +20210524231850 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375AEF2A0D7 +20210524232438 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B19B5B17 +20210524232556 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B23127DB +20210524233441 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B624C5D3 +20210524233915 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B81FBBEF +20210524234022 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B89ABD27 +20210524234251 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B9AA7603 +20210524234341 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375B9FF196B +20210524234859 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375BC541C47 +20210524234945 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375BCA418EB +20210524235116 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375BD49C877 +20210524235639 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375BFB1B0BB +20210524235928 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C0F703EB +20210525000202 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C21C5393 +20210525000215 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C22B072B +20210525000220 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C22DB943 +20210525000241 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C24E57CF +20210525000519 2 6 100 4095 5 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C37CDA8F +20210525000617 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C3E42EBB +20210525000910 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C52F623B +20210525000950 2 6 100 4095 2 DF313B012B87BCB41D4138171AA4A3ACBBCE90E58F3142966241384A0C0FFB78A3AAF92DFD19BAEF944D6323266A2BF7DAD5B917587B37D446A09EC84E519C10C981F1F59D7BF098A174589ACE1272D2BEDBC6703AE8F728E2EEC81F0C8F5E3E77991C632A664FAB45A584FD7A34133DB362EC04B2EFC6EC3F6C609C3ECEFB6223BA4CF06792D3A623F8FA4E1C78603B22B8AF856C8435AA6B25EEEB5C90F24572236182A79EE6A31331B4A78F1EFDE526AE53EA6C30F93DC2AEB3790E8AA728CE26D13080F84CC81ABB03E8E8E653368825D488461676BACF9BAAEDDA84A2E0E3524F407DD717A1DEC0D46C8FCF63F6F8952BCF1B19C03425F5AAB759ECD3C1E943756694A0F32CB0F765FB5EE410AFA6BAA30B0C96F4E65C76741BD067048DFF657B4C7C43336F200951448F3348AD241D9EBA14EE8CD8C023EF049835B6F6A6A4BA8B45CFF29C5252521494750C51972D2D448E357EA1B5A7230DCEFE9F2404E1D1C857E2DBFA18ABEA6369D958870D5657E3C6465748E2E10F851F9301B26F0A4AEF77F134C52A9391F7C92783FD7A2E378B5CE9F6D0ADA2B1EADC9BC9959E30E3821B2473DC1E2F3529DAE96B9E09BB0BC7806F41D7F39CEC690DB9F3DCCDFD92FA5DBF29FA26E5F55D87ED627E7788120A76ADDF2F2F28323F0950E1D9EAAC4270A6D66269978BB7382055BE7C36CE63446899C7ADF725F375C573F39B +20210525001816 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FBF7D2A3 +20210525001921 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FC6DAC53 +20210525001926 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FC6F3373 +20210525002309 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FE12C677 +20210525002320 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FE1E59AB +20210525002338 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FE3AB02F +20210525002359 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FE5BF4C3 +20210525002601 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB091FF3C869B +20210525002851 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09200739083 +20210525003041 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920140797B +20210525003049 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092014502F3 +20210525003141 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09201A2B9FF +20210525003223 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09201EA8A9B +20210525003231 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09201F326F3 +20210525003352 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092028EFD83 +20210525003809 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920482BA13 +20210525003923 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09205072CA3 +20210525004024 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09205780163 +20210525004148 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920617E947 +20210525004457 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092077D9FDB +20210525004558 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09207ED990B +20210525004731 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092089EB6C3 +20210525004805 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09208D77E3B +20210525004822 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09208EF6DA3 +20210525005103 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920A21B82B +20210525005232 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920AC6072B +20210525005335 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920B39092B +20210525005400 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920B611A73 +20210525005804 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920D2EF2A7 +20210525005836 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0920D66062F +20210525010525 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921066C17F +20210525010559 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09210A11893 +20210525010655 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921101CC03 +20210525010715 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092111F033F +20210525011027 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921284AEC3 +20210525011247 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092138697D7 +20210525011345 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09213EAC66B +20210525011758 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09215CA5E7F +20210525011827 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09215F9F6DB +20210525011950 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092168F25FB +20210525012059 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09217019A9B +20210525012441 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB092189F6357 +20210525012731 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB09219DE687B +20210525012806 2 6 100 4095 5 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921A19486F +20210525012959 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921AE8C22B +20210525013036 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921B277E7B +20210525013100 2 6 100 4095 2 D26A87E5A681F2A0E0231EC9449860176D2F9282C1D6E791D912B84987AAEF8BBCDE27FCC3A31FD76A78509ACB3673A0091330E077333D6682329E65ED16DAB1DC98ED93D911BCC3B63FF1271937AE5CE43688C0322530126BCC852EBA388F6B5B9AFF6808DD0B17790AD76F462EA9F0438F1E5A622C921E50A0358335806DD4A574C8117028E6DD07A42F09C3CDE7B5B9CD8914CEE9116E2F952862EFDB94F826D826C8EF15C468E80F916E09F4C411483E2C3CBDBF1CEE282F1144D17F9F681B0B238337941C1C5DEAB7DD52F0EC84A5C8B9FEEF5AA7EEA118FDF857B8BC0190C81A8D2E446E58C5F18DE1CFDD4680E04C89D421E1DEF67BC5A6FBA6B525FB06C263624A5D668A36F2254F9ADC7366544CE3A388B31675E3886801F9DFB571BA159C7D20B6175711387D696741F64FD689DC61F775028924BCCFC0197844340F61BB7EF0370B3FA53CFEEF65B4058B4CA1B25290DEB7E9ED829154430B7008A5E4174FCCAD783F3C8D1CE61014AF4299527B81B9F4D6EA4DEDEE89DD042FBDB6F0ED861CD7073F59AE181C5922BF8B480F7C71E2EC6CB6EA922FBA8C7383AA72001AA4A0AF633CD82D423B880E4AA3B96921BA8CE3EAB0337BAF49F37576905D811D657E3420C8C41C9BC693ACA6C94B34102F54FB370D597A1F9C00ED602927871F79C396D778FA4C968D2CD48788196EFB9511315087B9AEB0921B4B1893 +20210525015106 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081BF2FBF4B +20210525015719 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081C01C9317 +20210525022943 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081C51E7ABF +20210525025621 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081C92AC0FF +20210525030139 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081C9F26EFB +20210525030310 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081CA22ECE3 +20210525033123 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081CE69BC83 +20210525035425 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081D1EA340F +20210525042046 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081D5E1F147 +20210525044151 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081D906177B +20210525045703 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DB34C7EB +20210525050443 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DC53F8C7 +20210525050557 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DC7921BB +20210525051327 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DD90DF33 +20210525051635 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DE04D46F +20210525052745 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081DFAB207B +20210525053701 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081E102FFA3 +20210525060524 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081E525193F +20210525061916 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081E723D123 +20210525062421 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081E7DAEAA3 +20210525062728 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081E8449753 +20210525064313 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081EA8CAE5B +20210525072251 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081F04FCEC3 +20210525082731 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081F9AA3067 +20210525090241 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB3081FEACB11B +20210525093810 2 6 100 6143 2 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB308203BF9E43 +20210525094831 2 6 100 6143 5 CAED937BA3084DFE7B4C1B59AC23C7EA9F28E677B8AFA536E9079DECED93EDAAEFB2C757F9E7AE4E90C4C68C8C937CAA8A0FB92A36FBBD24F777D579E264E8750B365A59AF83C5925262981B301C94CA57CE2A4825438EE089B2E0A5A8D90B51B7DB6044383542685F2D543030403741A6337C0280866A08D15BBFF32D9326073E6F8BAE510E66CF5A5DC6C7D96EFA13984EA383224CD59C7F8A49BA170EBD0BCF896FAD0FD67AB88D4D25CC81D29FFB7062328C9BA3BCD7EB107B74FAC05412D7677C058604F544B2EE8548E9372064C0CEB79BADEF8755F86E8DC894BD043DE697ECE323D624156B731D99C12FD1F42BB2FCADF8CFFEAB8DB59F9CB5843C1A01018DB3E415B4BF00D7F3F20FAAD86938C6B3061BC2A4ED0D18FAD01B1E53D0C8D41D208189D6E341E167B4B975236701B76C72097A34AAC46F4781185A7A63E4FB4A3CDDAB793EE4DFBA3D57481AF41ACD06A45F8D59D33FEBABCD3B98675A9C3F54B0AB42CFCABCA47021C709867AB12F830C4E93AE48AE5EBDD109E3F672AAE6A2EFFEAF07648D3110EE52627D44C8EA35482502C1CDC7B655F4D4A5E7DA1A064E138D00A9CC85DA5E833221AC5FF62F7871B53A8CE279AD441A5795D092F257C9BD2A871D098B3583ED9876342351C063BC2EA9FF111D245FE68A6A087B9E0B7AB0C47F2C6BD98A5CB4DFC57B71A1CF13A83308DA1E3BEB572AFDA9B88F05CCE1DBE359A44E849CAE4AB6196262877B119EDF241326C0F523ACF04DDF90601DC0D4107B935444D5C9E019B340227A386996D071BAA64D62FA049F285F12366ACDD439FCD3D0BAF9C37519177AAC6CF3B6986BAB5F68BDC9FB6E3B82FA157BE36D452FC0EDC4CDB95F9677F97C0F98725F275EAE0FF15C53957D1EFA9CABCE7B68FC186F117C40C5D24BD982A7F21AD6FE4A9CAC6C763FB68DD0B1C725E5DBC4522B86A42B02E3F5E704595977829607FDEB0922C497A9A93F327FA921D8BFBCD9C18272506A1A9F23171787FCBA72E4670C857D089DB5A22AE801EEBD567D48D697EBF25E6183374FC4C47C1747C3F69E650333F6F7ABEB30820532247F +20210525101346 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7A84C1DCF +20210525102328 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7A9C0F78B +20210525102507 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7A9F844D3 +20210525105019 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7ADB803E7 +20210525110206 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7AF734957 +20210525110823 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7B0605EAB +20210525113051 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7B3C762EB +20210525114458 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7B5E9D203 +20210525120436 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7B8DCCD03 +20210525120944 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7B9A11BE3 +20210525122534 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7BBFCC14F +20210525140523 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7CAD4CEEB +20210525141051 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7CB96ECE3 +20210525141705 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7CC76C197 +20210525145447 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7D1FC10C3 +20210525152246 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7D605451B +20210525153139 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7D73E819B +20210525153550 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7D7D225C3 +20210525161421 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7DD5B0F27 +20210525163744 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7E0BFFE7B +20210525165044 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7E29682EB +20210525172301 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7E730C6C3 +20210525172835 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7E7F17D9F +20210525173319 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7E89CD397 +20210525174552 2 6 100 6143 2 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7EA6442E3 +20210525175415 2 6 100 6143 5 E14FDFEE7787F1C28112A16D64FE7C953E3A963B98675E5C078465D774DDD60D0689616D88E223B1D75C4D124BD32324D828137D8AF145AED00162977FA394F7D9657F5E892CDAC98461E41CCF76B3F42471E8DC112FB82F65AD55AE55ADE7F3B85C9EE6E914F2DEE618D55A9FA0F72F6C03664BCDAEDC64ACD9DAE85B0396321F79565522DE272B5D041155C8949BE08B5B09712887BE1E20C31FE5A5A90E0F9610000EF7E1BBA8C7EF3A9F7E3BD2710BCA36C5390673FC55FC47CF63A356472C491229E283A236DB444E75BCD2F43B0FF35B809E6336314945B725912A1C3423141007FFC129C65CCD772966D9E394AECC3252F9C9AD019950C188FE8922A959E19F226B33235BA30D0F3B163F21BE8964C67D0CD118EB7EDBE0DB21762006A115ECCF829452B51E533AC29A836DC6CF40135FCB31B77A287E5CD377A0A80D7F2683A9D9E760F3EA479CFCE9627AFF5BF6AEC257043D71E0CC695D2DF4589C3255DBA1A2F58FA3F673C23FEF80366042BC0DBD7AE2556E3EA38577FC0CA9D56324CB084E6EBE01ADFAD00AB41CF94822FC7680A9007A6BA804A2242E8EDE7D599A46F59886D36E6B7F4AA20D92E682AFC1BB0BD5F5AC0203185B978F438508933EE2A85666467A95051DF1EA0C6366CC28D36030242A4B51820D043190B310D5D51DCE6A6AF333629FAEE5F3A6D88DDC325321A3767CF1C97B6B5FD8E2AC2E95C54F142BD4F5A5F5609E6D4BC09C55FA03F92BA35C006662FC08BEE197777F3E8CC1730F754447D349BF93AA8683D226EBD2FD872CB8383A03058AE9210891886DB9E4DB2300D109B2C32E26C460DA6E362F72214999EFDEED5E7299AA4C6A9DC9A9BB5A8D59374F92C339314BCEDFE44E5F805F37934C94FB6D8C8E2C9045BF0C1CE9A659A40937870F51F36947A89EA941990F743666D6B27C71CDF6366666E3623471945AB3F52F98C6034CE808AF2F10F21541A3B3C1CBF2A204770E10953F63913D1A5695C1A68E48D21F65C210097F931E4DD82A31BEE9EC842D8898A73CB84E236B8A10D3B7D8BE6097E4679CC8BE8C77A1CB824F6231E7EB8F5A57 +20210525183229 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816BFE560FB +20210525190732 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816C2E82C7B +20210525191937 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816C3EC147F +20210525193159 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816C4F60C8B +20210525194246 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816C5D97313 +20210525203443 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816CA459133 +20210525215204 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816D0DE4FDB +20210525233543 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816D9A29577 +20210525234619 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816DA7ADFAB +20210525235329 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816DB0B2673 +20210525235513 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816DB26C1CB +20210526022844 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816E7D6D73B +20210526023323 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816E82F077F +20210526062933 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FB41731B +20210526065151 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FCF0DCD3 +20210526070545 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FDF8DB8F +20210526071052 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FE572613 +20210526071809 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FEDF35F3 +20210526072107 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FF13DABF +20210526072624 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37816FF7318C7 +20210526081148 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F3781702F3953F +20210526081939 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378170385D3EF +20210526100857 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378170BEE7A0B +20210526104252 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378170E7ACB07 +20210526104946 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378170EFA920B +20210526105532 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378170F653A13 +20210526110401 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378171004A14B +20210526110925 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378171065B293 +20210526123113 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F37817168DDC17 +20210526123356 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F3781716B7D3FB +20210526135059 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378171C86775F +20210526162058 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F3781727B688EB +20210526173849 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378172D7A5213 +20210526175432 2 6 100 7679 2 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378172E9D4DF3 +20210526175746 2 6 100 7679 5 E3F4DC1A68758284B2950A16204A7D9CB3972B0E74E2CDF12518B48DA3F349640BFEDA5162CB2EC47E2593EDB3BB51D743F3F4948A4D940B37B724B6D7E5F5BFD44F9D3CFB0F6E2CC1B33AEB7FCA7C2E26EFC55208D15DD12B08925383346148CA7CEEE874499CBE6E5D34AF7EF47742F683398B5418E3FA261013922180C6EEB4250632A2F93CDC281E6E76A488FEB4CE7B4C9783A37201CE4B551B53EEBF291234454CD0A4DC1B78C2D0F1BF72EC5D64EDBE8CB662F373ED861194F02AFBC8B7133ED9BDDFEEBA8E7C19C58505DF691960346B4F9E0FC1076DE872E6CB4323B8AD7FB4B086B26E10A55ECEB23F6FE78A5224A0679E5EA529C1327D38EDCCD340788D6216D1388B33A8E93B41B0B13ECAB9B7D647BBFBA2181E752B9DE7230C13B38E0988CAD88E2B1F8B8B1C938B93BAD62F250289CE33E3BE77C04B8090B806B031C23413EAE7799E6FB6DFB02ACCD308EA8688245527ED4918ACE575748DC01C02A6420C9CEECCAF8CBA73F16282DEEC6697CF82C880E3FFC8FD149411C6AD19AAF3B30BF2EE89977B7536C9607777F6E4F6E83B84BB4D9B359EDA6A5A1167B6D352F4D6CCE10F2C974EB81CB1C75280406B2F891A7E500BD58648A5A88ACDD1A6D7A2D80690BB441E533171930ABA557A52BD2512E3FD9A3E5DE6A378E3FED42D6ED5480093D3B0E068F2A24B54FF43BEE12BDD5A646B4A2C1746C27328792A4B9528FB45F6AF56C6F917978B535D98C2441EE79D825E73BF97A7D49B5DC85B12B0C257DF6AF0907B771C5EA582C9DECDDC3CC1852AE403FDCA636DB4B111747646CF893260651567C4C63B391013CA9047AE7F77BCE46A16FBE54054CA8D74AE248A5C5A22B841D31B89C82C8D9567A03B249A07FC1CEFB03B569AB328B0028DA5F3D4D2E2BBE076D9DAAE0DA86DA2648E7311709D0A8C6083C42F9FE430418C2597BF533D294E15E53D5E045A95222A23F4CA7AC9FF35A0E1CBFB80227D800ADA8F79FE463F1C9FA0D8A4E9F6C42ACAB07B5A7CE6E1BB649264EF1EBBDE073A1892B3EDA5CF60D0921754A5848FE47F32168A094CAB1D242EF095BAAD113824511114B4714DDAAA585E3A653DEF46A70DB8D43E4813E6A03E5779B9A9194925CC967DF08F1EB9CEC35EA96BB3D78C40B0A4B8AA79D101CD8110E37119267CC3F2ADA62E3CA0F444C22CF5A73D46BBFDE56BBD1E4FC397A9D6975E77923B6E3AD4CAB4A4E3C5EEB01DC1B7690BF44197AAD7D1B802BB4F6494095E708F4A7F9642AAD64B0511037DC9A65663C4AA6046575A56226103E282B61286CFE6BD8672A3C297DB544E3CF08013BD2B32130D21E521351E9AA9F378172ED281E7 +20210526194658 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC72DF2567 +20210526205542 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC789BCF5B +20210526211855 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC7A83E6AB +20210526212819 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC7B4A5E7B +20210526214431 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC7CA4162F +20210526221404 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC7F1A2A03 +20210526224339 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC817DD633 +20210526232709 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC850A6253 +20210526233209 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8568303F +20210527003359 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8A7766A3 +20210527004505 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8B60FE03 +20210527005150 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8BE3BDCF +20210527010445 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8CE83F03 +20210527012302 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC8E564BAB +20210527031004 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC96F6A7D3 +20210527042035 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDC9C9071D3 +20210527051239 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCA0A5F80F +20210527054907 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCA382DD3B +20210527055430 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCA3E850B3 +20210527063343 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCA6FD9EFB +20210527071327 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCAA0EBEC7 +20210527071630 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCAA41FB57 +20210527080058 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCADACEDC3 +20210527085945 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCB22EE113 +20210527101619 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCB8016A93 +20210527102548 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCB8B44C67 +20210527105317 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCBAC26CAF +20210527111021 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCBC0189BB +20210527120037 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCBFCB4D7B +20210527120149 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCBFDA08E7 +20210527125327 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCC3B60853 +20210527125755 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCC4035243 +20210527133418 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCC6B03E83 +20210527141546 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCC9BF3B53 +20210527142810 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCAA21133 +20210527143703 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCB42B1A3 +20210527150004 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCCEFC0DF +20210527152242 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCE94F76B +20210527153438 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCF7614B7 +20210527153537 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCCF7F4B23 +20210527155914 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCD13EEF3F +20210527170116 2 6 100 7679 2 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCD5E5A47B +20210527171119 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCD6975A67 +20210527173152 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCD815F687 +20210527180427 2 6 100 7679 5 C32E7FEED6DD76E659C6961141AEC4C2E086F62A1B6FBB851A142301550CCFC2E424C3D4B1B518D97BB7DBA9B7E0E40408EA5CE767F9276D112391D7D777FC14537F787F3ADD0DA7A45B64E1330E8F7A0D23C5AFB283E766F2BD69FD286599C68CFF239900CB849E720800D52B4D7FDFBE94C6B920AFD4FE3BAB7C9F19193F96ADC0EDE471FCFCD27ABFF54EFD8F589FD4FD5DF45FC03F832C4B137F4AEAE448E9FEC83A8E1BE47FA202A243BE467219C94A5B28908635E9794C4A4D471E17297E5584CAC109082787C01B8C32C3B0D89006EABD02F17D8BAA792C71A3CA3563501206E70786FC09605B91365EBC2F31EAA94778BB63895FE13ECEBDD005255672ED2768ACAA24E317FC4D4204AEF9B69C0A7EE845B3C228A878D385BE603145DFA087D480A41AEDFA887F7B058BBBEE7D702D83611132FDDF37D0ED1D1731B905D73CDCEF06F9F2BE2A1D01099A915F545F8FFE9B42B66C5FF5DDF2CFCD38B50D45620A364650F12A6E9E94D398FBA738ED66C764901F475CC0DB8B328343180DC70E77BAFC3D8F5CD168A9D9985BA98DD632FB6691B178DE4C276FD5EADABB891680118D0F1234C21AE7788981A33AEEB5D357C28B87F82E4D7314C2A5C9C756541C9CA0C038CA03EB4A75324BBD8DEB5817EDBE6EC15FEEE0E94DBADB19DB0C53467935672C9E8DA879D83619277D37109F4002884B45A69693E5E5C0919BB3A11C89D0BDE5B944602222405EA03F1CB8B8C171C1BD01489E5690EFBFD69CE50A3C7D57FB83857B18B98FFC999D0CA1CA5BFE196485D03E6CD9DE2964091827CC7FBD6D4708D6E8C27BD38A40CF06F713544A1A862DC650F13148A039BE09E55765E27E70490EA8D5AB67009A5834ED6972FF8D76F57B4EEE311E2F395C12DF65FB0DB8F9DD405F0CFEDF3BF08C391E628A0230B6F0ABBB4D07EC644DBBFBD4F48F9A89756F1004873C3D9F20E3566B6B1A2E1ABB6C7152EFB099723469A3D4408D0C27106E09D483C705E50556A35691C99B108D5629A3BFF434A196868E460046B26F4D1FC9725A3470229BF840C86EE0FE1239AF1992C6F7E960CAD0E0D82839CB67318A084AE5BBD8CE513C4DE6EC95B74F8CABADCD825775C36247B07F2CBDCF45B6C3ABF0C4EFED04733309D6CFEBE37871B9A4180A84A822742CD47496C310BCECB574EBED53C0BFDE574D49F3E180EF575B1BFB8799434305FAB7CB970AF999407F262FDBC13CC1809B1F34A962FE8D1348D52780C4AA173E769E70CAC6D8C2E97BF92F7624B4631952FC07FAF93E43A1A8C869C3423BD9A9387CFB4B5B8B2D8475174CCA1AF38CC64E514F0281D65A9AEE4876EB7CDCDA776E0F +20210527185319 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F513E1A12F +20210527185735 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F51429194B +20210527213255 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F51F664F27 +20210527214610 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F52058B933 +20210528000741 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F52A61610F +20210528003717 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F52C738E73 +20210528014022 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F530CE1FFB +20210528020015 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F5322397AB +20210528050850 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F53F20EBA7 +20210528054438 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F5418B5C4B +20210528084340 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F54D8C79F3 +20210528091530 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F54FA20AAB +20210528094806 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F551BB35BF +20210528123059 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F55C74EE33 +20210528123356 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F55C9BEE33 +20210528131007 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F55EF35FB3 +20210528131122 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F55EFEBC1B +20210528133019 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F560345AEB +20210528174944 2 6 100 8191 5 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F570F3AF57 +20210528180427 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F571DF3C6B +20210528235428 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F587F3BDB3 +20210529021000 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F590536F63 +20210529024531 2 6 100 8191 2 F08476CF6891E7C1CE5A873D1D744FC41D579F53B1F877B0F280D44DF57BEBB3EFDEBC7B8DA48C885005E0F3D8167BE79FAA61DA67EAB112C599882D369A7446FFB888D483317B6A7E0A6AC0CCB6ADD70D511AD81FDCDD71D40C5A40B3627872CE2EDD092B2ED810F6F5F3AE3C02D97856002D646C750910C9B6917615BA8D8D0345514B5F7B37EF910BE98C8E42FF9F9C2FE04F3252C2894D67A033AB22CA3B1BFA9FEB208509654755F3B83121AB827BC481F2E435F68EA144ECCC19670F5C234369F97461A9AFEAE48917B2D767E925D3B94C6380F4A1891EE20A1413C358EC93C8D0D34E90C424BCA367AB4B7C63FDFA0931FB8735ECC5FE22694F8E2784389AC68974BBF1FB5196A5CFA63D30464968927752F1F8F216A07A467EFBCFD4078203DA384AC63A6A304AC56114D2BBDF9212F58BDE3AC556E168ACBF0AB63370D44E90D63E5CEDACA9D94F248B74A783E3852BE5BFF73E27F6FAE6BD0BE5A7A014262CBFB7ADB6A29477D9F2F5FB45E9AD5F16C07B06CA166455C83377C52BF61D06D8CCA11B692F7F05E96264C52295C73D6CD991190A54A2B097BFDBBA8B89A5DFCD1FF9DAFD24542B78FF5F00AF78890EA8297223CCAD28DEE98D829750A17298ABE7F3ED70E7370B1CDE1B4F23C24D69F0F4EA9F821B89BAA2D4577A247118EEF70F780FEF57DB587E1F3EAE54748615BE921CA766FC7EC2961E36EFB41CFC607B989ED0C4254057FD9D39715A35C872ED17407856C80C35F65BD181B181942CB5D62710FE60D0347FEEC2AC3ACE45EA72FCB4256EC07C0383B6CF930CF56CDB9803CEE74A66F83ABEF9C75A0D222BF02C3535B6E3C0DC3124A0E603B9E6A89A3BF636305D2174A2B379C4E36685993C8E8B4E44905D2D352B9EE9101910DCB6931C904D16CB0A079B6669DA3FF8F925A3119EF27F4164DA23405F8F135E454D09BEA876E27449E5884884A24833F3BE93165240285E43A3E4B296CAB04891F574787335DDF17085F77B37AFCD8221AB748FCB28CA2C664931C397E2CD70F8EC8D21C467A16A1F33EB1A5E9C0CA80EC81697A40FE6B01753AC39216301D9763D401DE1460DEC6BC546FDB648C79F9A7B80D6A8CD2AC8E09970D52B1FD4D780A51DBDDC4FDCB53A3D6DB50C6959C78AE8E1912BBD9B259159BEFE965834EB8F17F00A10DE857A49A6E94BA5E930998F283CB035C83174B17596B4C3ECFAC1912AB9799A92E2A01D6A0004753E3D2E5F8748A697D4007DF99C32C3E6C1C3DDDDEF90B9539D716DCF3F95CFC4CA0A9D9AD13E570C55A708986D1304740AAE543C4506D96DB45AC0547854735EFAB7814C8FF5029B256DA0C58E6BC618008117E92228B618103642E8AE533D5859178AB2B39E3B0D044195F531E8304DCA4B883E1B2DFDA12663E9D5FE976935CCC1594C6284A68C4CECAAF842F5927CEA53 +20210529031713 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CA36AA3B7 +20210529041139 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CA75D422B +20210529050432 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CAB1C588B +20210529050545 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CAB28E9FF +20210529063055 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CB131E3CF +20210529074241 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CB6403B37 +20210529084711 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CBAB7BD1B +20210529091139 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CBC6896B3 +20210529091418 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CBC8EBF67 +20210529104434 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CC2D31FCB +20210529114106 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CC6BA9507 +20210529124457 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CCB1266F7 +20210529130632 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CCC8BF0A7 +20210529154413 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CD7337777 +20210529171849 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CDD794B1B +20210529201318 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CE8F228D7 +20210529210612 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CEC4AD6BB +20210529211901 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CED1A6127 +20210529213817 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CEE51861B +20210529215309 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CEF3757F3 +20210529215904 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CEF8E8187 +20210530010351 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CFB5346BB +20210530015721 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CFE9B3287 +20210530020811 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2CFF416103 +20210530062143 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2D0EB89917 +20210530071701 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2D1208E667 +20210530095307 2 6 100 8191 2 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2D1B675F3B +20210530111421 2 6 100 8191 5 D8A2E2F024645B5A3FB339A2EF06A3E46CD2AA808530C320F121CE1EEBEE128D6DB4C49492881B35E5AA8C43CAA07E7F69A5C4ECD0EE62A29FC191B9C0DD6955E23E831A0573135B9931D03A5BBCA961410CA287D08D53C0E8CFEC19534C4FECBAD0F2BE625802AF1B504F59A4A88DAA5F52F221E0E9E0DB1396F07EAF2CA88B79D8CF35EF154A69569C545CA1D04A07ADE3628243039985880B79972FB9F5070951D40C9D21C1729348152724531B270C9DEBB5B2C730C72F4EA3932DB44BD3C746E082856A4109A37BA979164881D5B8007807FF1A7E0C48F99DBBE1709585203E579AE201D295E720CDD45B3A8652A7CE878765E699727641410F840871B4362DC51A3D4D15980876649089CE845B5733497FB8E7B2568EF8627EC1BEE0434A3A72094132A0BA0CA102A440952285823FB09684A1C52468193F6E8A6CC9D935C13FCC661DED5CB84B5D5DF721447531787F78AB31AA1D6342460A8B896518640B7DCF3825B52D46469351EF17E586B661D5C0E792C0AA0B0309B8A4BECB3B267BB459C7452387FF6028EEC1C6DFAE3EE9452EB7A7CFB9CDD361B45FF29E6648BD94712BEF29A1C86C492231F710BC66BF8CF83F8765EF6DBA6857C733789DD71245F17C6FA03DD07FCFFBC450029776FDB4F4B411D4B4A98E090CB79B4CF990398FE1C147CE959C8C11D5DE9A4271EA4CA3D8A50A6F7081A2B0F95AA4AD80081511C357D9F15B7547F0A725EED4EE7FDDAE32A3D00512984928679C51375777E968FE3363DCC495300762C7C6D32F4088DB4D4D4449610D05E87CECADA742827EF2B4EF1D064CEB0EEBB01264306F3E24D6260483829576F88B8346764429722BFD0FE3845F541837ACFFEDA101E0E082F618630B741BE1A9E44C677A947FEC31F08EB338798617A09C38EF3FF31A677E62DCDBA2C56D37B1F16AD2B06F41D3E5CDE9A9B7179B6EC46DF99D857521DF29E8012A1AFE6F2F0658171F56EEA20E531C3B2E02864B130BB0BA476F23024DCCA6411CE1BBD1D5C9F5346DB36334117AAF7A1B4ABE86470CABDF862010F5AE3129CA17F36BA89EE3DB83641804EC2455ED75686342E9F339068A77258BBC292E05AF5C233F5B74CA83080CC5DAE01E977E2F7D1ADC36803398B81DAC22DE391F512912148392371C658C416C96C8C3035928EDBB418CF249C9C02793AE6661AB04B4C6C944F55B23CB5621511DACD8EC5C1ECD463620CAC79C38B6CC95FA8993482EA255246D30DA6EA67C677889F56CDF4466F5D968069E152B0BE30B64E1B18607035D7D15503D364B73BAB5582CDF290FE30D2EB7A4F6F797D80702CC448E1153A3A9D882445C73BA490388588F31FA6C14BA7DBFAD39E1CE6B0E2FAD69015F81FF6DAAC56420A478CF717DD952A0DC51B1E38113CF5EF2AC2EC08B6F6CB427A06AD990213C09DB2D2044A90F diff --git a/monitor.c b/monitor.c index 8b08b68acd8..973e10fb105 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.225 2021/04/15 16:24:31 markus Exp $ */ +/* $OpenBSD: monitor.c,v 1.231 2022/01/28 06:18:42 guenther Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -121,8 +121,6 @@ int mm_answer_authserv(struct ssh *, int, struct sshbuf *); int mm_answer_authpassword(struct ssh *, int, struct sshbuf *); int mm_answer_bsdauthquery(struct ssh *, int, struct sshbuf *); int mm_answer_bsdauthrespond(struct ssh *, int, struct sshbuf *); -int mm_answer_skeyquery(struct ssh *, int, struct sshbuf *); -int mm_answer_skeyrespond(struct ssh *, int, struct sshbuf *); int mm_answer_keyallowed(struct ssh *, int, struct sshbuf *); int mm_answer_keyverify(struct ssh *, int, struct sshbuf *); int mm_answer_pty(struct ssh *, int, struct sshbuf *); @@ -682,8 +680,8 @@ mm_answer_sign(struct ssh *ssh, int sock, struct sshbuf *m) } else fatal_f("no hostkey from index %d", keyid); - debug3_f("%s signature %p(%zu)", is_proof ? "hostkey proof" : "KEX", - signature, siglen); + debug3_f("%s %s signature len=%zu", alg, + is_proof ? "hostkey proof" : "KEX", siglen); sshbuf_reset(m); if ((r = sshbuf_put_string(m, signature, siglen)) != 0) @@ -793,7 +791,7 @@ mm_answer_pwnamallow(struct ssh *ssh, int sock, struct sshbuf *m) if (auth2_setup_methods_lists(authctxt) != 0) { /* * The monitor will continue long enough to let the child - * run to it's packet_disconnect(), but it must not allow any + * run to its packet_disconnect(), but it must not allow any * authentication to succeed. */ debug_f("no valid authentication method lists"); @@ -965,7 +963,7 @@ mm_answer_bsdauthrespond(struct ssh *ssh, int sock, struct sshbuf *m) if ((r = sshbuf_get_cstring(m, &response, NULL)) != 0) fatal_fr(r, "parse"); - authok = options.challenge_response_authentication && + authok = options.kbd_interactive_authentication && auth_userresponse(authctxt->as, response, 0); authctxt->as = NULL; debug3_f("<%s> = <%d>", response, authok); @@ -1166,8 +1164,6 @@ mm_answer_keyallowed(struct ssh *ssh, int sock, struct sshbuf *m) (r = sshbuf_get_u32(m, &pubkey_auth_attempt)) != 0) fatal_fr(r, "parse"); - debug3_f("key_from_blob: %p", key); - if (key != NULL && authctxt->valid) { /* These should not make it past the privsep child */ if (sshkey_type_plain(key->type) == KEY_RSA && @@ -1251,11 +1247,12 @@ static int monitor_valid_userblob(struct ssh *ssh, const u_char *data, u_int datalen) { struct sshbuf *b; + struct sshkey *hostkey = NULL; const u_char *p; char *userstyle, *cp; size_t len; u_char type; - int r, fail = 0; + int hostbound = 0, r, fail = 0; if ((b = sshbuf_from(data, datalen)) == NULL) fatal_f("sshbuf_from"); @@ -1296,19 +1293,34 @@ monitor_valid_userblob(struct ssh *ssh, const u_char *data, u_int datalen) if ((r = sshbuf_skip_string(b)) != 0 || /* service */ (r = sshbuf_get_cstring(b, &cp, NULL)) != 0) fatal_fr(r, "parse method"); - if (strcmp("publickey", cp) != 0) - fail++; + if (strcmp("publickey", cp) != 0) { + if (strcmp("publickey-hostbound-v00@openssh.com", cp) == 0) + hostbound = 1; + else + fail++; + } free(cp); if ((r = sshbuf_get_u8(b, &type)) != 0) fatal_fr(r, "parse pktype"); if (type == 0) fail++; if ((r = sshbuf_skip_string(b)) != 0 || /* pkalg */ - (r = sshbuf_skip_string(b)) != 0) /* pkblob */ + (r = sshbuf_skip_string(b)) != 0 || /* pkblob */ + (hostbound && (r = sshkey_froms(b, &hostkey)) != 0)) fatal_fr(r, "parse pk"); if (sshbuf_len(b) != 0) fail++; sshbuf_free(b); + if (hostkey != NULL) { + /* + * Ensure this is actually one of our hostkeys; unfortunately + * can't check ssh->kex->initial_hostkey directly at this point + * as packet state has not yet been exported to monitor. + */ + if (get_hostkey_index(hostkey, 1, ssh) == -1) + fatal_f("hostbound hostkey does not match"); + sshkey_free(hostkey); + } return (fail == 0); } @@ -1437,7 +1449,8 @@ mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m) ret = sshkey_verify(key, signature, signaturelen, data, datalen, sigalg, ssh->compat, &sig_details); - debug3_f("%s %p signature %s%s%s", auth_method, key, + debug3_f("%s %s signature using %s %s%s%s", auth_method, + sshkey_type(key), sigalg == NULL ? "default" : sigalg, (ret == 0) ? "verified" : "unverified", (ret != 0) ? ": " : "", (ret != 0) ? ssh_err(ret) : ""); @@ -1736,130 +1749,130 @@ monitor_apply_keystate(struct ssh *ssh, struct monitor *pmonitor) kex->kex[KEX_ECDH_SHA2] = kex_gen_server; # endif #endif /* WITH_OPENSSL */ - kex->kex[KEX_C25519_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SNTRUP761X25519_SHA512] = kex_gen_server; + kex->kex[KEX_C25519_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SNTRUP761X25519_SHA512] = kex_gen_server; ///// OQS_TEMPLATE_FRAGMENT_APPLY_KEYSTATE_START - kex->kex[KEX_KEM_FRODOKEM_640_AES_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_976_AES_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_1344_AES_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_640_SHAKE_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_976_SHAKE_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_1344_SHAKE_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P434_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P434_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P610_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P610_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P751_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P751_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P434_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P434_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P610_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P610_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P751_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P751_COMPRESSED_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SABER_LIGHTSABER_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SABER_SABER_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_SABER_FIRESABER_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_512_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_768_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_1024_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_512_90S_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_768_90S_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_1024_90S_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_BIKE_L1_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_BIKE_L3_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS2048509_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS2048677_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS4096821_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS40961229_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HRSS701_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HRSS1373_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864F_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896F_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128F_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119F_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128F_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_HQC_128_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_HQC_192_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_HQC_256_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR653_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP653_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR761_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP761_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR857_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP857_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR1277_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP1277_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_640_AES_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_976_AES_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_1344_AES_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_640_SHAKE_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_976_SHAKE_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_1344_SHAKE_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P434_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P434_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P610_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P610_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P751_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P751_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P434_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P434_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P610_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P610_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P751_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P751_COMPRESSED_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SABER_LIGHTSABER_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SABER_SABER_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_SABER_FIRESABER_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_512_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_768_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_1024_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_512_90S_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_768_90S_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_1024_90S_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_BIKE_L1_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_BIKE_L3_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS2048509_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS2048677_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS4096821_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS40961229_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HRSS701_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HRSS1373_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864F_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896F_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128F_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119F_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128F_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_HQC_128_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_HQC_192_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_HQC_256_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR653_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP653_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR761_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP761_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR857_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP857_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR1277_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP1277_SHA512] = kex_gen_server; #ifdef WITH_OPENSSL #ifdef OPENSSL_HAS_ECC - kex->kex[KEX_KEM_FRODOKEM_640_AES_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_976_AES_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_1344_AES_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_640_SHAKE_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_976_SHAKE_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_FRODOKEM_1344_SHAKE_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P434_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P434_COMPRESSED_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P610_ECDH_NISTP384_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P610_COMPRESSED_ECDH_NISTP384_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P751_ECDH_NISTP521_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIDH_P751_COMPRESSED_ECDH_NISTP521_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P434_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P434_COMPRESSED_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P610_ECDH_NISTP384_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P610_COMPRESSED_ECDH_NISTP384_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P751_ECDH_NISTP521_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SIKE_P751_COMPRESSED_ECDH_NISTP521_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SABER_LIGHTSABER_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_SABER_SABER_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_SABER_FIRESABER_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_512_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_768_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_1024_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_512_90S_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_768_90S_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_KYBER_1024_90S_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_BIKE_L1_ECDH_NISTP256_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_BIKE_L3_ECDH_NISTP384_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS2048509_ECDH_NISTP256_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS2048677_ECDH_NISTP384_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS4096821_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HPS40961229_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HRSS701_ECDH_NISTP384_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRU_HRSS1373_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864F_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896_ECDH_NISTP384_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896F_ECDH_NISTP384_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128F_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119F_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128F_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_HQC_128_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_HQC_192_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_HQC_256_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR653_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP653_ECDH_NISTP256_SHA256] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR761_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP761_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR857_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP857_ECDH_NISTP384_SHA384] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_NTRULPR1277_ECDH_NISTP521_SHA512] = kex_gen_server; - kex->kex[KEX_KEM_NTRUPRIME_SNTRUP1277_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_640_AES_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_976_AES_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_1344_AES_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_640_SHAKE_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_976_SHAKE_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_FRODOKEM_1344_SHAKE_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P434_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P434_COMPRESSED_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P610_ECDH_NISTP384_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P610_COMPRESSED_ECDH_NISTP384_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P751_ECDH_NISTP521_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIDH_P751_COMPRESSED_ECDH_NISTP521_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P434_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P434_COMPRESSED_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P610_ECDH_NISTP384_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P610_COMPRESSED_ECDH_NISTP384_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P751_ECDH_NISTP521_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SIKE_P751_COMPRESSED_ECDH_NISTP521_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SABER_LIGHTSABER_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_SABER_SABER_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_SABER_FIRESABER_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_512_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_768_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_1024_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_512_90S_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_768_90S_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_KYBER_1024_90S_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_BIKE_L1_ECDH_NISTP256_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_BIKE_L3_ECDH_NISTP384_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS2048509_ECDH_NISTP256_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS2048677_ECDH_NISTP384_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS4096821_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HPS40961229_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HRSS701_ECDH_NISTP384_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRU_HRSS1373_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_348864F_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896_ECDH_NISTP384_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_460896F_ECDH_NISTP384_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6688128F_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_6960119F_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_CLASSIC_MCELIECE_8192128F_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_HQC_128_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_HQC_192_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_HQC_256_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR653_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP653_ECDH_NISTP256_SHA256] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR761_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP761_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR857_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP857_ECDH_NISTP384_SHA384] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_NTRULPR1277_ECDH_NISTP521_SHA512] = kex_gen_server; + kex->kex[KEX_KEM_NTRUPRIME_SNTRUP1277_ECDH_NISTP521_SHA512] = kex_gen_server; #endif /* OPENSSL_HAS_ECC */ #endif /* WITH_OPENSSL */ ///// OQS_TEMPLATE_FRAGMENT_APPLY_KEYSTATE_END - kex->load_host_public_key=&get_hostkey_public_by_type; - kex->load_host_private_key=&get_hostkey_private_by_type; - kex->host_key_index=&get_hostkey_index; - kex->sign = sshd_hostkey_sign; + kex->load_host_public_key=&get_hostkey_public_by_type; + kex->load_host_private_key=&get_hostkey_private_by_type; + kex->host_key_index=&get_hostkey_index; + kex->sign = sshd_hostkey_sign; } /* This function requires careful sanity checking */ diff --git a/mux.c b/mux.c index faf4ef1e92a..176f035c86f 100644 --- a/mux.c +++ b/mux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mux.c,v 1.87 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: mux.c,v 1.92 2022/01/11 01:26:47 djm Exp $ */ /* * Copyright (c) 2002-2008 Damien Miller * @@ -71,9 +71,7 @@ /* from ssh.c */ extern int tty_flag; extern Options options; -extern int stdin_null_flag; extern char *host; -extern int subsystem_flag; extern struct sshbuf *command; extern volatile sig_atomic_t quit_pending; @@ -452,14 +450,6 @@ mux_master_process_new_session(struct ssh *ssh, u_int rid, if (cctx->want_tty && tcgetattr(new_fd[0], &cctx->tio) == -1) error_f("tcgetattr: %s", strerror(errno)); - /* enable nonblocking unless tty */ - if (!isatty(new_fd[0])) - set_nonblock(new_fd[0]); - if (!isatty(new_fd[1])) - set_nonblock(new_fd[1]); - if (!isatty(new_fd[2])) - set_nonblock(new_fd[2]); - window = CHAN_SES_WINDOW_DEFAULT; packetmax = CHAN_SES_PACKET_DEFAULT; if (cctx->want_tty) { @@ -469,7 +459,7 @@ mux_master_process_new_session(struct ssh *ssh, u_int rid, nc = channel_new(ssh, "session", SSH_CHANNEL_OPENING, new_fd[0], new_fd[1], new_fd[2], window, packetmax, - CHAN_EXTENDED_WRITE, "client-session", /*nonblock*/0); + CHAN_EXTENDED_WRITE, "client-session", CHANNEL_NONBLOCK_STDIO); nc->ctl_chan = c->self; /* link session -> control channel */ c->remote_id = nc->self; /* link control -> session channel */ @@ -1025,13 +1015,8 @@ mux_master_process_stdio_fwd(struct ssh *ssh, u_int rid, } } - /* enable nonblocking unless tty */ - if (!isatty(new_fd[0])) - set_nonblock(new_fd[0]); - if (!isatty(new_fd[1])) - set_nonblock(new_fd[1]); - - nc = channel_connect_stdio_fwd(ssh, chost, cport, new_fd[0], new_fd[1]); + nc = channel_connect_stdio_fwd(ssh, chost, cport, new_fd[0], new_fd[1], + CHANNEL_NONBLOCK_STDIO); free(chost); nc->ctl_chan = c->self; /* link session -> control channel */ @@ -1879,7 +1864,7 @@ mux_client_request_session(int fd) { struct sshbuf *m; char *e; - const char *term; + const char *term = NULL; u_int echar, rid, sid, esid, exitval, type, exitval_seen; extern char **environ; int r, i, rawmode; @@ -1893,11 +1878,13 @@ mux_client_request_session(int fd) ssh_signal(SIGPIPE, SIG_IGN); - if (stdin_null_flag && stdfd_devnull(1, 0, 0) == -1) + if (options.stdin_null && stdfd_devnull(1, 0, 0) == -1) fatal_f("stdfd_devnull failed"); - if ((term = getenv("TERM")) == NULL) - term = ""; + if ((term = lookup_env_in_list("TERM", options.setenv, + options.num_setenv)) == NULL || *term == '\0') + term = getenv("TERM"); + echar = 0xffffffff; if (options.escape_char != SSH_ESCAPECHAR_NONE) echar = (u_int)options.escape_char; @@ -1910,9 +1897,9 @@ mux_client_request_session(int fd) (r = sshbuf_put_u32(m, tty_flag)) != 0 || (r = sshbuf_put_u32(m, options.forward_x11)) != 0 || (r = sshbuf_put_u32(m, options.forward_agent)) != 0 || - (r = sshbuf_put_u32(m, subsystem_flag)) != 0 || + (r = sshbuf_put_u32(m, options.session_type == SESSION_TYPE_SUBSYSTEM)) != 0 || (r = sshbuf_put_u32(m, echar)) != 0 || - (r = sshbuf_put_cstring(m, term)) != 0 || + (r = sshbuf_put_cstring(m, term == NULL ? "" : term)) != 0 || (r = sshbuf_put_stringb(m, command)) != 0) fatal_fr(r, "request"); @@ -2050,7 +2037,7 @@ mux_client_request_session(int fd) } else debug2("Received exit status from master %d", exitval); - if (tty_flag && options.log_level != SYSLOG_LEVEL_QUIET) + if (tty_flag && options.log_level >= SYSLOG_LEVEL_INFO) fprintf(stderr, "Shared connection to %s closed.\r\n", host); exit(exitval); @@ -2114,7 +2101,7 @@ mux_client_request_stdio_fwd(int fd) ssh_signal(SIGPIPE, SIG_IGN); - if (stdin_null_flag && stdfd_devnull(1, 0, 0) == -1) + if (options.stdin_null && stdfd_devnull(1, 0, 0) == -1) fatal_f("stdfd_devnull failed"); if ((m = sshbuf_new()) == NULL) diff --git a/myproposal.h b/myproposal.h index 2c8da5c8823..30eb0242a78 100644 --- a/myproposal.h +++ b/myproposal.h @@ -1,4 +1,4 @@ -/* $OpenBSD: myproposal.h,v 1.68 2020/10/03 04:15:06 djm Exp $ */ +/* $OpenBSD: myproposal.h,v 1.70 2021/11/10 06:29:25 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. @@ -33,6 +33,7 @@ "ecdh-sha2-nistp256," \ "ecdh-sha2-nistp384," \ "ecdh-sha2-nistp521," \ + "sntrup761x25519-sha512@openssh.com," \ "diffie-hellman-group-exchange-sha256," \ "diffie-hellman-group16-sha512," \ "diffie-hellman-group18-sha512," \ @@ -163,7 +164,6 @@ "sk-ecdsa-sha2-nistp256-cert-v01@openssh.com," \ "rsa-sha2-512-cert-v01@openssh.com," \ "rsa-sha2-256-cert-v01@openssh.com," \ - "ssh-rsa-cert-v01@openssh.com," \ "ssh-ed25519," \ "ecdsa-sha2-nistp256," \ "ecdsa-sha2-nistp384," \ @@ -171,8 +171,7 @@ "sk-ssh-ed25519@openssh.com," \ "sk-ecdsa-sha2-nistp256@openssh.com," \ "rsa-sha2-512," \ - "rsa-sha2-256," \ - "ssh-rsa" + "rsa-sha2-256" #define KEX_SERVER_ENCRYPT \ "chacha20-poly1305@openssh.com," \ diff --git a/nchan.c b/nchan.c index 4a4494b861d..d33426fedf9 100644 --- a/nchan.c +++ b/nchan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nchan.c,v 1.72 2021/01/27 09:26:54 djm Exp $ */ +/* $OpenBSD: nchan.c,v 1.74 2022/02/01 23:32:51 djm Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -82,8 +82,12 @@ static void chan_shutdown_write(struct ssh *, Channel *); static void chan_shutdown_read(struct ssh *, Channel *); static void chan_shutdown_extended_read(struct ssh *, Channel *); -static const char *ostates[] = { "open", "drain", "wait_ieof", "closed" }; -static const char *istates[] = { "open", "drain", "wait_oclose", "closed" }; +static const char * const ostates[] = { + "open", "drain", "wait_ieof", "closed", +}; +static const char * const istates[] = { + "open", "drain", "wait_oclose", "closed", +}; static void chan_set_istate(Channel *c, u_int next) @@ -384,7 +388,7 @@ chan_shutdown_write(struct ssh *ssh, Channel *c) c->istate, c->ostate, strerror(errno)); } } else { - if (channel_close_fd(ssh, &c->wfd) < 0) { + if (channel_close_fd(ssh, c, &c->wfd) < 0) { logit_f("channel %d: close() failed for " "fd %d [i%d o%d]: %.100s", c->self, c->wfd, c->istate, c->ostate, strerror(errno)); @@ -412,7 +416,7 @@ chan_shutdown_read(struct ssh *ssh, Channel *c) c->istate, c->ostate, strerror(errno)); } } else { - if (channel_close_fd(ssh, &c->rfd) < 0) { + if (channel_close_fd(ssh, c, &c->rfd) < 0) { logit_f("channel %d: close() failed for " "fd %d [i%d o%d]: %.100s", c->self, c->rfd, c->istate, c->ostate, strerror(errno)); @@ -431,7 +435,7 @@ chan_shutdown_extended_read(struct ssh *ssh, Channel *c) debug_f("channel %d: (i%d o%d sock %d wfd %d efd %d [%s])", c->self, c->istate, c->ostate, c->sock, c->rfd, c->efd, channel_format_extended_usage(c)); - if (channel_close_fd(ssh, &c->efd) < 0) { + if (channel_close_fd(ssh, c, &c->efd) < 0) { logit_f("channel %d: close() failed for " "extended fd %d [i%d o%d]: %.100s", c->self, c->efd, c->istate, c->ostate, strerror(errno)); diff --git a/openbsd-compat/Makefile.in b/openbsd-compat/Makefile.in index 3eb188f0b60..5d53bef5757 100644 --- a/openbsd-compat/Makefile.in +++ b/openbsd-compat/Makefile.in @@ -79,6 +79,7 @@ COMPAT= arc4random.o \ bsd-nextstep.o \ bsd-openpty.o \ bsd-poll.o \ + bsd-pselect.o \ bsd-setres_id.o \ bsd-signal.o \ bsd-snprintf.o \ @@ -94,6 +95,7 @@ COMPAT= arc4random.o \ PORTS= port-aix.o \ port-irix.o \ port-linux.o \ + port-prngd.o \ port-solaris.o \ port-net.o \ port-uw.o diff --git a/openbsd-compat/arc4random.c b/openbsd-compat/arc4random.c index 578f69f4f74..80ff3c1801a 100644 --- a/openbsd-compat/arc4random.c +++ b/openbsd-compat/arc4random.c @@ -39,6 +39,8 @@ #ifndef HAVE_ARC4RANDOM +#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) + #ifdef WITH_OPENSSL #include #include @@ -88,7 +90,7 @@ _rs_init(u_char *buf, size_t n) static void getrnd(u_char *s, size_t len) { - int fd; + int fd, save_errno; ssize_t r; size_t o = 0; @@ -97,8 +99,14 @@ getrnd(u_char *s, size_t len) return; #endif /* HAVE_GETRANDOM */ - if ((fd = open(SSH_RANDOM_DEV, O_RDONLY)) == -1) - fatal("Couldn't open %s: %s", SSH_RANDOM_DEV, strerror(errno)); + if ((fd = open(SSH_RANDOM_DEV, O_RDONLY)) == -1) { + save_errno = errno; + /* Try egd/prngd before giving up. */ + if (seed_from_prngd(s, len) == 0) + return; + fatal("Couldn't open %s: %s", SSH_RANDOM_DEV, + strerror(save_errno)); + } while (o < len) { r = read(fd, s + o, len - o); if (r < 0) { @@ -164,7 +172,7 @@ _rs_rekey(u_char *dat, size_t datlen) if (dat) { size_t i, m; - m = MIN(datlen, KEYSZ + IVSZ); + m = MINIMUM(datlen, KEYSZ + IVSZ); for (i = 0; i < m; i++) rs_buf[i] ^= dat[i]; } @@ -183,7 +191,7 @@ _rs_random_buf(void *_buf, size_t n) _rs_stir_if_needed(n); while (n > 0) { if (rs_have > 0) { - m = MIN(n, rs_have); + m = MINIMUM(n, rs_have); memcpy(buf, rs_buf + RSBUFSZ - rs_have, m); memset(rs_buf + RSBUFSZ - rs_have, 0, m); buf += m; @@ -224,7 +232,7 @@ arc4random_addrandom(u_char *dat, int datlen) if (!rs_initialized) _rs_stir(); while (datlen > 0) { - m = MIN(datlen, KEYSZ + IVSZ); + m = MINIMUM(datlen, KEYSZ + IVSZ); _rs_rekey(dat, m); dat += m; datlen -= m; diff --git a/openbsd-compat/base64.c b/openbsd-compat/base64.c index b7dce095e4c..e5faba3c52b 100644 --- a/openbsd-compat/base64.c +++ b/openbsd-compat/base64.c @@ -49,7 +49,6 @@ #if (!defined(HAVE_B64_NTOP) && !defined(HAVE___B64_NTOP)) || (!defined(HAVE_B64_PTON) && !defined(HAVE___B64_PTON)) #include -#include #include #include #include diff --git a/openbsd-compat/bcrypt_pbkdf.c b/openbsd-compat/bcrypt_pbkdf.c index 62728d38f00..5a22ba3b425 100644 --- a/openbsd-compat/bcrypt_pbkdf.c +++ b/openbsd-compat/bcrypt_pbkdf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: bcrypt_pbkdf.c,v 1.13 2015/01/12 03:20:04 tedu Exp $ */ +/* $OpenBSD: bcrypt_pbkdf.c,v 1.16 2020/08/02 18:35:48 tb Exp $ */ /* * Copyright (c) 2013 Ted Unangst * @@ -17,12 +17,13 @@ /* OPENBSD ORIGINAL: lib/libutil/bcrypt_pbkdf.c */ +/* This version has been modified to use SHA512 from SUPERCOP */ + #include "includes.h" #ifndef HAVE_BCRYPT_PBKDF #include -#include #ifdef HAVE_STDLIB_H # include @@ -48,7 +49,7 @@ * function with the following modifications: * 1. The input password and salt are preprocessed with SHA512. * 2. The output length is expanded to 256 bits. - * 3. Subsequently the magic string to be encrypted is lengthened and modified + * 3. Subsequently the magic string to be encrypted is lengthened and modifed * to "OxychromaticBlowfishSwatDynamite" * 4. The hash function is defined to perform 64 rounds of initial state * expansion. (More rounds are performed by iterating the hash.) @@ -69,10 +70,10 @@ #define BCRYPT_HASHSIZE (BCRYPT_WORDS * 4) static void -bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out) +bcrypt_hash(uint8_t *sha2pass, uint8_t *sha2salt, uint8_t *out) { blf_ctx state; - u_int8_t ciphertext[BCRYPT_HASHSIZE] = + uint8_t ciphertext[BCRYPT_HASHSIZE] = "OxychromaticBlowfishSwatDynamite"; uint32_t cdata[BCRYPT_WORDS]; int i; @@ -93,7 +94,7 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out) cdata[i] = Blowfish_stream2word(ciphertext, sizeof(ciphertext), &j); for (i = 0; i < 64; i++) - blf_enc(&state, cdata, sizeof(cdata) / (sizeof(uint64_t))); + blf_enc(&state, cdata, BCRYPT_WORDS / 2); /* copy out */ for (i = 0; i < BCRYPT_WORDS; i++) { @@ -110,26 +111,26 @@ bcrypt_hash(u_int8_t *sha2pass, u_int8_t *sha2salt, u_int8_t *out) } int -bcrypt_pbkdf(const char *pass, size_t passlen, const u_int8_t *salt, size_t saltlen, - u_int8_t *key, size_t keylen, unsigned int rounds) +bcrypt_pbkdf(const char *pass, size_t passlen, const uint8_t *salt, size_t saltlen, + uint8_t *key, size_t keylen, unsigned int rounds) { - u_int8_t sha2pass[SHA512_DIGEST_LENGTH]; - u_int8_t sha2salt[SHA512_DIGEST_LENGTH]; - u_int8_t out[BCRYPT_HASHSIZE]; - u_int8_t tmpout[BCRYPT_HASHSIZE]; - u_int8_t *countsalt; + uint8_t sha2pass[SHA512_DIGEST_LENGTH]; + uint8_t sha2salt[SHA512_DIGEST_LENGTH]; + uint8_t out[BCRYPT_HASHSIZE]; + uint8_t tmpout[BCRYPT_HASHSIZE]; + uint8_t *countsalt; size_t i, j, amt, stride; uint32_t count; size_t origkeylen = keylen; /* nothing crazy */ if (rounds < 1) - return -1; + goto bad; if (passlen == 0 || saltlen == 0 || keylen == 0 || keylen > sizeof(out) * sizeof(out) || saltlen > 1<<20) - return -1; + goto bad; if ((countsalt = calloc(1, saltlen + 4)) == NULL) - return -1; + goto bad; stride = (keylen + sizeof(out) - 1) / sizeof(out); amt = (keylen + stride - 1) / stride; @@ -173,9 +174,15 @@ bcrypt_pbkdf(const char *pass, size_t passlen, const u_int8_t *salt, size_t salt } /* zap */ + freezero(countsalt, saltlen + 4); explicit_bzero(out, sizeof(out)); - free(countsalt); + explicit_bzero(tmpout, sizeof(tmpout)); return 0; + +bad: + /* overwrite with random in case caller doesn't check return code */ + arc4random_buf(key, keylen); + return -1; } #endif /* HAVE_BCRYPT_PBKDF */ diff --git a/openbsd-compat/bindresvport.c b/openbsd-compat/bindresvport.c index eeb269d59df..346c7fe5654 100644 --- a/openbsd-compat/bindresvport.c +++ b/openbsd-compat/bindresvport.c @@ -40,6 +40,7 @@ #include #include +#include #include #define STARTPORT 600 diff --git a/openbsd-compat/blf.h b/openbsd-compat/blf.h index f1ac5a5c2b6..5b8a73e55ac 100644 --- a/openbsd-compat/blf.h +++ b/openbsd-compat/blf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: blf.h,v 1.7 2007/03/14 17:59:41 grunk Exp $ */ +/* $OpenBSD: blf.h,v 1.8 2021/11/29 01:04:45 djm Exp $ */ /* * Blowfish - a fast block cipher designed by Bruce Schneier * @@ -13,10 +13,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Niels Provos. - * 4. The name of the author may not be used to endorse or promote products + * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR diff --git a/openbsd-compat/blowfish.c b/openbsd-compat/blowfish.c index e10f7e7d927..bfeba47c0db 100644 --- a/openbsd-compat/blowfish.c +++ b/openbsd-compat/blowfish.c @@ -1,4 +1,4 @@ -/* $OpenBSD: blowfish.c,v 1.18 2004/11/02 17:23:26 hshoexer Exp $ */ +/* $OpenBSD: blowfish.c,v 1.20 2021/11/29 01:04:45 djm Exp $ */ /* * Blowfish block cipher for OpenBSD * Copyright 1997 Niels Provos @@ -14,10 +14,7 @@ * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Niels Provos. - * 4. The name of the author may not be used to endorse or promote products + * 3. The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR diff --git a/openbsd-compat/bsd-closefrom.c b/openbsd-compat/bsd-closefrom.c index 8fadca2dad6..704da531fef 100644 --- a/openbsd-compat/bsd-closefrom.c +++ b/openbsd-compat/bsd-closefrom.c @@ -16,10 +16,9 @@ #include "includes.h" -#ifndef HAVE_CLOSEFROM +#if !defined(HAVE_CLOSEFROM) || defined(BROKEN_CLOSEFROM) #include -#include #include #include #ifdef HAVE_FCNTL_H @@ -130,6 +129,11 @@ closefrom(int lowfd) DIR *dirp; int len; +#ifdef HAVE_CLOSE_RANGE + if (close_range(lowfd, INT_MAX, 0) == 0) + return; +#endif + /* Check for a /proc/$$/fd directory. */ len = snprintf(fdpath, sizeof(fdpath), "/proc/%ld/fd", (long)getpid()); if (len > 0 && (size_t)len < sizeof(fdpath) && (dirp = opendir(fdpath))) { diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c index 54628e2607b..9ede21d243a 100644 --- a/openbsd-compat/bsd-cygwin_util.c +++ b/openbsd-compat/bsd-cygwin_util.c @@ -194,11 +194,11 @@ _match_pattern(const char *s, const char *pattern) size_t len; int ret; - if ((len = mbstowcs(NULL, s, 0)) < 0) + if ((len = mbstowcs(NULL, s, 0)) == (size_t) -1) return 0; ws = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t)); mbstowcs(ws, s, len + 1); - if ((len = mbstowcs(NULL, pattern, 0)) < 0) + if ((len = mbstowcs(NULL, pattern, 0)) == (size_t) -1) return 0; wpattern = (wchar_t *) xcalloc(len + 1, sizeof (wchar_t)); mbstowcs(wpattern, pattern, len + 1); diff --git a/openbsd-compat/bsd-getline.c b/openbsd-compat/bsd-getline.c index d676f4cefa7..e51bd7a1313 100644 --- a/openbsd-compat/bsd-getline.c +++ b/openbsd-compat/bsd-getline.c @@ -39,7 +39,7 @@ #include "file.h" #endif -#if !HAVE_GETLINE +#if !defined(HAVE_GETLINE) || defined(BROKEN_GETLINE) #include #include #include diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h index 3a7dd6f4c30..2206e1a8214 100644 --- a/openbsd-compat/bsd-misc.h +++ b/openbsd-compat/bsd-misc.h @@ -20,6 +20,7 @@ #include "includes.h" char *ssh_get_progname(char *); +int seed_from_prngd(unsigned char *, size_t); #ifndef HAVE_SETSID #define setsid() setpgrp(0, getpid()) @@ -125,6 +126,11 @@ int isblank(int); pid_t getpgid(pid_t); #endif +#ifndef HAVE_PSELECT +int pselect(int, fd_set *, fd_set *, fd_set *, const struct timespec *, + const sigset_t *); +#endif + #ifndef HAVE_ENDGRENT # define endgrent() do { } while(0) #endif diff --git a/openbsd-compat/bsd-openpty.c b/openbsd-compat/bsd-openpty.c index 1ab41f42b63..f5507000a5c 100644 --- a/openbsd-compat/bsd-openpty.c +++ b/openbsd-compat/bsd-openpty.c @@ -66,33 +66,16 @@ #include #include "misc.h" +#include "log.h" #ifndef O_NOCTTY #define O_NOCTTY 0 #endif -int -openpty(int *amaster, int *aslave, char *name, struct termios *termp, - struct winsize *winp) +#if defined(HAVE_DEV_PTMX) && !defined(HAVE__GETPTY) +static int +openpty_streams(int *amaster, int *aslave) { -#if defined(HAVE__GETPTY) - /* - * _getpty(3) exists in SGI Irix 4.x, 5.x & 6.x -- it generates more - * pty's automagically when needed - */ - char *slave; - - if ((slave = _getpty(amaster, O_RDWR, 0622, 0)) == NULL) - return (-1); - - /* Open the slave side. */ - if ((*aslave = open(slave, O_RDWR | O_NOCTTY)) == -1) { - close(*amaster); - return (-1); - } - return (0); - -#elif defined(HAVE_DEV_PTMX) /* * This code is used e.g. on Solaris 2.x. (Note that Solaris 2.3 * also has bsd-style ptys, but they simply do not work.) @@ -141,9 +124,60 @@ openpty(int *amaster, int *aslave, char *name, struct termios *termp, # ifndef __hpux ioctl(*aslave, I_PUSH, "ttcompat"); # endif /* __hpux */ + return (0); +} +#endif + +int +openpty(int *amaster, int *aslave, char *name, struct termios *termp, + struct winsize *winp) +{ +#if defined(HAVE__GETPTY) + /* + * _getpty(3) exists in SGI Irix 4.x, 5.x & 6.x -- it generates more + * pty's automagically when needed + */ + char *slave; + + if ((slave = _getpty(amaster, O_RDWR, 0622, 0)) == NULL) + return (-1); + /* Open the slave side. */ + if ((*aslave = open(slave, O_RDWR | O_NOCTTY)) == -1) { + close(*amaster); + return (-1); + } return (0); +#elif defined(HAVE_DEV_PTMX) + +#ifdef SSHD_ACQUIRES_CTTY + /* + * On some (most? all?) SysV based systems with STREAMS based terminals, + * sshd will acquire a controlling terminal when it pushes the "ptem" + * module. On such platforms, first allocate a sacrificial pty so + * that sshd already has a controlling terminal before allocating the + * one that will be passed back to the user process. This ensures + * the second pty is not already the controlling terminal for a + * different session and is available to become controlling terminal + * for the client's subprocess. See bugzilla #245 for details. + */ + int r, fd; + static int junk_ptyfd = -1, junk_ttyfd; + + r = openpty_streams(amaster, aslave); + if (junk_ptyfd == -1 && (fd = open(_PATH_TTY, O_RDWR|O_NOCTTY)) >= 0) { + close(fd); + junk_ptyfd = *amaster; + junk_ttyfd = *aslave; + debug("STREAMS bug workaround pty %d tty %d name %s", + junk_ptyfd, junk_ttyfd, ttyname(junk_ttyfd)); + } else + return r; +#endif + + return openpty_streams(amaster, aslave); + #elif defined(HAVE_DEV_PTS_AND_PTC) /* AIX-style pty code. */ const char *ttname; diff --git a/openbsd-compat/bsd-poll.c b/openbsd-compat/bsd-poll.c index c8e6222c0e3..781ee978a65 100644 --- a/openbsd-compat/bsd-poll.c +++ b/openbsd-compat/bsd-poll.c @@ -15,40 +15,45 @@ */ #include "includes.h" -#if !defined(HAVE_POLL) +#if !defined(HAVE_PPOLL) || !defined(HAVE_POLL) || defined(BROKEN_POLL) #include #include +#ifdef HAVE_SYS_PARAM_H +# include +#endif #ifdef HAVE_SYS_SELECT_H # include #endif #include +#include #include #include #include "bsd-poll.h" +#if !defined(HAVE_PPOLL) || defined(BROKEN_POLL) /* - * A minimal implementation of poll(2), built on top of select(2). + * A minimal implementation of ppoll(2), built on top of pselect(2). * - * Only supports POLLIN and POLLOUT flags in pfd.events, and POLLIN, POLLOUT - * and POLLERR flags in revents. + * Only supports POLLIN, POLLOUT and POLLPRI flags in pfd.events and + * revents. Notably POLLERR, POLLHUP and POLLNVAL are not supported. * * Supports pfd.fd = -1 meaning "unused" although it's not standard. */ int -poll(struct pollfd *fds, nfds_t nfds, int timeout) +ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmoutp, + const sigset_t *sigmask) { nfds_t i; int saved_errno, ret, fd, maxfd = 0; fd_set *readfds = NULL, *writefds = NULL, *exceptfds = NULL; size_t nmemb; - struct timeval tv, *tvp = NULL; for (i = 0; i < nfds; i++) { fd = fds[i].fd; - if (fd >= FD_SETSIZE) { + if (fd != -1 && fd >= FD_SETSIZE) { errno = EINVAL; return -1; } @@ -69,24 +74,15 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout) fd = fds[i].fd; if (fd == -1) continue; - if (fds[i].events & POLLIN) { + if (fds[i].events & POLLIN) FD_SET(fd, readfds); - FD_SET(fd, exceptfds); - } - if (fds[i].events & POLLOUT) { + if (fds[i].events & POLLOUT) FD_SET(fd, writefds); + if (fds[i].events & POLLPRI) FD_SET(fd, exceptfds); - } } - /* poll timeout is msec, select is timeval (sec + usec) */ - if (timeout >= 0) { - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; - tvp = &tv; - } - - ret = select(maxfd + 1, readfds, writefds, exceptfds, tvp); + ret = pselect(maxfd + 1, readfds, writefds, exceptfds, tmoutp, sigmask); saved_errno = errno; /* scan through select results and set poll() flags */ @@ -95,15 +91,12 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout) fds[i].revents = 0; if (fd == -1) continue; - if (FD_ISSET(fd, readfds)) { + if (FD_ISSET(fd, readfds)) fds[i].revents |= POLLIN; - } - if (FD_ISSET(fd, writefds)) { + if (FD_ISSET(fd, writefds)) fds[i].revents |= POLLOUT; - } - if (FD_ISSET(fd, exceptfds)) { - fds[i].revents |= POLLERR; - } + if (FD_ISSET(fd, exceptfds)) + fds[i].revents |= POLLPRI; } out: @@ -114,4 +107,23 @@ poll(struct pollfd *fds, nfds_t nfds, int timeout) errno = saved_errno; return ret; } -#endif +#endif /* !HAVE_PPOLL || BROKEN_POLL */ + +#if !defined(HAVE_POLL) || defined(BROKEN_POLL) +int +poll(struct pollfd *fds, nfds_t nfds, int timeout) +{ + struct timespec ts, *tsp = NULL; + + /* poll timeout is msec, ppoll is timespec (sec + nsec) */ + if (timeout >= 0) { + ts.tv_sec = timeout / 1000; + ts.tv_nsec = (timeout % 1000) * 1000000; + tsp = &ts; + } + + return ppoll(fds, nfds, tsp, NULL); +} +#endif /* !HAVE_POLL || BROKEN_POLL */ + +#endif /* !HAVE_PPOLL || !HAVE_POLL || BROKEN_POLL */ diff --git a/openbsd-compat/bsd-poll.h b/openbsd-compat/bsd-poll.h index 8420ca1db37..586647ee1af 100644 --- a/openbsd-compat/bsd-poll.h +++ b/openbsd-compat/bsd-poll.h @@ -27,26 +27,31 @@ /* OPENBSD ORIGINAL: sys/sys/poll.h */ -#if !defined(HAVE_POLL) && !defined(HAVE_POLL_H) #ifndef _COMPAT_POLL_H_ #define _COMPAT_POLL_H_ +#include +#ifdef HAVE_POLL_H +# include +#elif HAVE_SYS_POLL_H +# include +#endif + +#ifndef HAVE_STRUCT_POLLFD_FD typedef struct pollfd { int fd; short events; short revents; } pollfd_t; -typedef unsigned int nfds_t; - #define POLLIN 0x0001 +#define POLLPRI 0x0002 #define POLLOUT 0x0004 #define POLLERR 0x0008 #define POLLHUP 0x0010 #define POLLNVAL 0x0020 #if 0 /* the following are currently not implemented */ -#define POLLPRI 0x0002 #define POLLRDNORM 0x0040 #define POLLNORM POLLRDNORM #define POLLWRNORM POLLOUT @@ -55,7 +60,18 @@ typedef unsigned int nfds_t; #endif #define INFTIM (-1) /* not standard */ +#endif /* !HAVE_STRUCT_POLLFD_FD */ +#ifndef HAVE_NFDS_T +typedef unsigned int nfds_t; +#endif + +#ifndef HAVE_POLL int poll(struct pollfd *, nfds_t, int); +#endif + +#ifndef HAVE_PPOLL +int ppoll(struct pollfd *, nfds_t, const struct timespec *, const sigset_t *); +#endif + #endif /* !_COMPAT_POLL_H_ */ -#endif /* !HAVE_POLL_H */ diff --git a/openbsd-compat/bsd-pselect.c b/openbsd-compat/bsd-pselect.c new file mode 100644 index 00000000000..b3632086368 --- /dev/null +++ b/openbsd-compat/bsd-pselect.c @@ -0,0 +1,205 @@ +/* + * Copyright (c) 2001 Markus Friedl. All rights reserved. + * Copyright (c) 2021 Darren Tucker (dtucker at dtucker net). + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "includes.h" +#ifndef HAVE_PSELECT + +#include +#include +#ifdef HAVE_SYS_SELECT_H +# include +#endif + +#include +#include +#include +#include +#include +#include + +#include "log.h" +#include "misc.h" /* for set_nonblock */ + +#ifndef HAVE_SIGHANDLER_T +typedef void (*sighandler_t)(int); +#endif + +static sighandler_t saved_sighandler[_NSIG]; + +/* + * Set up the descriptors. Because they are close-on-exec, in the case + * where sshd's re-exec fails notify_pipe will still point to a descriptor + * that was closed by the exec attempt but if that descriptor has been + * reopened then we'll attempt to use that. Ensure that notify_pipe is + * outside of the range used by sshd re-exec but within NFDBITS (so we don't + * need to expand the fd_sets). + */ +#define REEXEC_MIN_FREE_FD (STDERR_FILENO + 4) +static int +pselect_notify_setup_fd(int *fd) +{ + int r; + + if ((r = fcntl(*fd, F_DUPFD, REEXEC_MIN_FREE_FD)) < 0 || + fcntl(r, F_SETFD, FD_CLOEXEC) < 0 || r >= FD_SETSIZE) + return -1; + (void)close(*fd); + return (*fd = r); +} + +/* + * we write to this pipe if a SIGCHLD is caught in order to avoid + * the race between select() and child_terminated + */ +static pid_t notify_pid; +static int notify_pipe[2]; +static void +pselect_notify_setup(void) +{ + static int initialized; + + if (initialized && notify_pid == getpid()) + return; + if (notify_pid == 0) + debug3_f("initializing"); + else { + debug3_f("pid changed, reinitializing"); + if (notify_pipe[0] != -1) + close(notify_pipe[0]); + if (notify_pipe[1] != -1) + close(notify_pipe[1]); + } + if (pipe(notify_pipe) == -1) { + error("pipe(notify_pipe) failed %s", strerror(errno)); + } else if (pselect_notify_setup_fd(¬ify_pipe[0]) == -1 || + pselect_notify_setup_fd(¬ify_pipe[1]) == -1) { + error("fcntl(notify_pipe, ...) failed %s", strerror(errno)); + close(notify_pipe[0]); + close(notify_pipe[1]); + } else { + set_nonblock(notify_pipe[0]); + set_nonblock(notify_pipe[1]); + notify_pid = getpid(); + debug3_f("pid %d saved %d pipe0 %d pipe1 %d", getpid(), + notify_pid, notify_pipe[0], notify_pipe[1]); + initialized = 1; + return; + } + notify_pipe[0] = -1; /* read end */ + notify_pipe[1] = -1; /* write end */ +} +static void +pselect_notify_parent(void) +{ + if (notify_pipe[1] != -1) + (void)write(notify_pipe[1], "", 1); +} +static void +pselect_notify_prepare(fd_set *readset) +{ + if (notify_pipe[0] != -1) + FD_SET(notify_pipe[0], readset); +} +static void +pselect_notify_done(fd_set *readset) +{ + char c; + + if (notify_pipe[0] != -1 && FD_ISSET(notify_pipe[0], readset)) { + while (read(notify_pipe[0], &c, 1) != -1) + debug2_f("reading"); + FD_CLR(notify_pipe[0], readset); + } +} + +/*ARGSUSED*/ +static void +pselect_sig_handler(int sig) +{ + int save_errno = errno; + + pselect_notify_parent(); + if (saved_sighandler[sig] != NULL) + (*saved_sighandler[sig])(sig); /* call original handler */ + errno = save_errno; +} + +/* + * A minimal implementation of pselect(2), built on top of select(2). + */ + +int +pselect(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, + const struct timespec *timeout, const sigset_t *mask) +{ + int ret, sig, saved_errno, unmasked = 0; + sigset_t osig; + struct sigaction sa, osa; + struct timeval tv, *tvp = NULL; + + if (timeout != NULL) { + tv.tv_sec = timeout->tv_sec; + tv.tv_usec = timeout->tv_nsec / 1000; + tvp = &tv; + } + if (mask == NULL) /* no signal mask, just call select */ + return select(nfds, readfds, writefds, exceptfds, tvp); + + /* For each signal we're unmasking, install our handler if needed. */ + for (sig = 0; sig < _NSIG; sig++) { + if (sig == SIGKILL || sig == SIGSTOP || sigismember(mask, sig)) + continue; + if (sigaction(sig, NULL, &sa) == 0 && + sa.sa_handler != SIG_IGN && sa.sa_handler != SIG_DFL) { + unmasked = 1; + if (sa.sa_handler == pselect_sig_handler) + continue; + sa.sa_handler = pselect_sig_handler; + if (sigaction(sig, &sa, &osa) == 0) { + debug3_f("installing signal handler for %s, " + "previous %p", strsignal(sig), + osa.sa_handler); + saved_sighandler[sig] = osa.sa_handler; + } + } + } + if (unmasked) { + pselect_notify_setup(); + pselect_notify_prepare(readfds); + nfds = MAX(nfds, notify_pipe[0] + 1); + } + + /* Unmask signals, call select then restore signal mask. */ + sigprocmask(SIG_SETMASK, mask, &osig); + ret = select(nfds, readfds, writefds, exceptfds, tvp); + saved_errno = errno; + sigprocmask(SIG_SETMASK, &osig, NULL); + + if (unmasked) + pselect_notify_done(readfds); + errno = saved_errno; + return ret; +} +#endif diff --git a/openbsd-compat/bsd-statvfs.c b/openbsd-compat/bsd-statvfs.c index 10d8764392c..18ca726cfc7 100644 --- a/openbsd-compat/bsd-statvfs.c +++ b/openbsd-compat/bsd-statvfs.c @@ -18,7 +18,6 @@ #if !defined(HAVE_STATVFS) || !defined(HAVE_FSTATVFS) -#include #ifdef HAVE_SYS_MOUNT_H # include #endif diff --git a/openbsd-compat/dirname.c b/openbsd-compat/dirname.c index 30fcb496856..127bc2ae16f 100644 --- a/openbsd-compat/dirname.c +++ b/openbsd-compat/dirname.c @@ -23,7 +23,6 @@ #include #include -#include char * dirname(const char *path) diff --git a/openbsd-compat/getcwd.c b/openbsd-compat/getcwd.c index e4f7f5a3d0a..2d56bae19dd 100644 --- a/openbsd-compat/getcwd.c +++ b/openbsd-compat/getcwd.c @@ -34,7 +34,6 @@ #if !defined(HAVE_GETCWD) -#include #include #include #include diff --git a/openbsd-compat/inet_aton.c b/openbsd-compat/inet_aton.c index 093a17203fb..5efcc5f0374 100644 --- a/openbsd-compat/inet_aton.c +++ b/openbsd-compat/inet_aton.c @@ -56,7 +56,6 @@ #if !defined(HAVE_INET_ATON) #include -#include #include #include #include diff --git a/openbsd-compat/inet_ntop.c b/openbsd-compat/inet_ntop.c index 3259037baad..c037f0805a6 100644 --- a/openbsd-compat/inet_ntop.c +++ b/openbsd-compat/inet_ntop.c @@ -22,7 +22,6 @@ #ifndef HAVE_INET_NTOP -#include #include #include #include diff --git a/openbsd-compat/memmem.c b/openbsd-compat/memmem.c index ad330d1a887..2637401d7c6 100644 --- a/openbsd-compat/memmem.c +++ b/openbsd-compat/memmem.c @@ -23,6 +23,8 @@ * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libc/string/memmem.c */ + #include "includes.h" #ifndef HAVE_MEMMEM diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h index 542ae58ddc8..c202e142924 100644 --- a/openbsd-compat/openbsd-compat.h +++ b/openbsd-compat/openbsd-compat.h @@ -49,6 +49,7 @@ #include "fnmatch.h" #if defined(HAVE_LOGIN_CAP) && !defined(HAVE_LOGIN_GETPWCLASS) +# include # define login_getpwclass(pw) login_getclass(pw->pw_class) #endif @@ -194,9 +195,9 @@ int writev(int, struct iovec *, int); #endif /* Home grown routines */ +#include "bsd-signal.h" #include "bsd-misc.h" #include "bsd-setres_id.h" -#include "bsd-signal.h" #include "bsd-statvfs.h" #include "bsd-waitpid.h" #include "bsd-poll.h" @@ -314,8 +315,8 @@ int timingsafe_bcmp(const void *, const void *, size_t); #endif #ifndef HAVE_BCRYPT_PBKDF -int bcrypt_pbkdf(const char *, size_t, const u_int8_t *, size_t, - u_int8_t *, size_t, unsigned int); +int bcrypt_pbkdf(const char *, size_t, const uint8_t *, size_t, + uint8_t *, size_t, unsigned int); #endif #ifndef HAVE_EXPLICIT_BZERO diff --git a/openbsd-compat/port-aix.c b/openbsd-compat/port-aix.c index e0d3eba51c5..2ac9bad0983 100644 --- a/openbsd-compat/port-aix.c +++ b/openbsd-compat/port-aix.c @@ -445,7 +445,7 @@ getgrouplist(const char *user, gid_t pgid, gid_t *groups, int *grpcnt) char *cp, *grplist, *grp; gid_t gid; int ret = 0, ngroups = 0, maxgroups; - long l; + long long ll; maxgroups = *grpcnt; @@ -463,12 +463,12 @@ getgrouplist(const char *user, gid_t pgid, gid_t *groups, int *grpcnt) /* copy each entry from getgrset into group list */ while ((grp = strsep(&grplist, ",")) != NULL) { - l = strtol(grp, NULL, 10); - if (ngroups >= maxgroups || l == LONG_MIN || l == LONG_MAX) { + ll = strtoll(grp, NULL, 10); + if (ngroups >= maxgroups || ll < 0 || ll > UID_MAX) { ret = -1; goto out; } - gid = (gid_t)l; + gid = (gid_t)ll; if (gid == pgid) continue; /* we have already added primary gid */ groups[ngroups++] = gid; diff --git a/openbsd-compat/port-prngd.c b/openbsd-compat/port-prngd.c new file mode 100644 index 00000000000..6afa8f913ae --- /dev/null +++ b/openbsd-compat/port-prngd.c @@ -0,0 +1,164 @@ +/* + * Copyright (c) 2001 Damien Miller. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "includes.h" + +#include +#include +#ifdef HAVE_SYS_UN_H +# include +#endif + +#include +#include + +#include +#include +#include +#include +#include +#include /* for offsetof */ + +#include "atomicio.h" +#include "misc.h" +#include "log.h" + +#if defined(PRNGD_PORT) || defined(PRNGD_SOCKET) +/* + * EGD/PRNGD interface. + * + * Collect 'len' bytes of entropy into 'buf' from PRNGD/EGD daemon + * listening either on 'tcp_port', or via Unix domain socket at * + * 'socket_path'. + * Either a non-zero tcp_port or a non-null socket_path must be + * supplied. + * Returns 0 on success, -1 on error + */ +static int +get_random_bytes_prngd(unsigned char *buf, int len, + unsigned short tcp_port, char *socket_path) +{ + int fd, addr_len, rval, errors; + u_char msg[2]; + struct sockaddr_storage addr; + struct sockaddr_in *addr_in = (struct sockaddr_in *)&addr; + struct sockaddr_un *addr_un = (struct sockaddr_un *)&addr; + sshsig_t old_sigpipe; + + /* Sanity checks */ + if (socket_path == NULL && tcp_port == 0) + fatal("You must specify a port or a socket"); + if (socket_path != NULL && + strlen(socket_path) >= sizeof(addr_un->sun_path)) + fatal("Random pool path is too long"); + if (len <= 0 || len > 255) + fatal("Too many bytes (%d) to read from PRNGD", len); + + memset(&addr, '\0', sizeof(addr)); + + if (tcp_port != 0) { + addr_in->sin_family = AF_INET; + addr_in->sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr_in->sin_port = htons(tcp_port); + addr_len = sizeof(*addr_in); + } else { + addr_un->sun_family = AF_UNIX; + strlcpy(addr_un->sun_path, socket_path, + sizeof(addr_un->sun_path)); + addr_len = offsetof(struct sockaddr_un, sun_path) + + strlen(socket_path) + 1; + } + + old_sigpipe = ssh_signal(SIGPIPE, SIG_IGN); + + errors = 0; + rval = -1; +reopen: + fd = socket(addr.ss_family, SOCK_STREAM, 0); + if (fd == -1) { + error("Couldn't create socket: %s", strerror(errno)); + goto done; + } + + if (connect(fd, (struct sockaddr*)&addr, addr_len) == -1) { + if (tcp_port != 0) { + error("Couldn't connect to PRNGD port %d: %s", + tcp_port, strerror(errno)); + } else { + error("Couldn't connect to PRNGD socket \"%s\": %s", + addr_un->sun_path, strerror(errno)); + } + goto done; + } + + /* Send blocking read request to PRNGD */ + msg[0] = 0x02; + msg[1] = len; + + if (atomicio(vwrite, fd, msg, sizeof(msg)) != sizeof(msg)) { + if (errno == EPIPE && errors < 10) { + close(fd); + errors++; + goto reopen; + } + error("Couldn't write to PRNGD socket: %s", + strerror(errno)); + goto done; + } + + if (atomicio(read, fd, buf, len) != (size_t)len) { + if (errno == EPIPE && errors < 10) { + close(fd); + errors++; + goto reopen; + } + error("Couldn't read from PRNGD socket: %s", + strerror(errno)); + goto done; + } + + rval = 0; +done: + ssh_signal(SIGPIPE, old_sigpipe); + if (fd != -1) + close(fd); + return rval; +} +#endif /* PRNGD_PORT || PRNGD_SOCKET */ + +int +seed_from_prngd(unsigned char *buf, size_t bytes) +{ +#ifdef PRNGD_PORT + debug("trying egd/prngd port %d", PRNGD_PORT); + if (get_random_bytes_prngd(buf, bytes, PRNGD_PORT, NULL) == 0) + return 0; +#endif +#ifdef PRNGD_SOCKET + debug("trying egd/prngd socket %s", PRNGD_SOCKET); + if (get_random_bytes_prngd(buf, bytes, 0, PRNGD_SOCKET) == 0) + return 0; +#endif + return -1; +} diff --git a/openbsd-compat/port-solaris.c b/openbsd-compat/port-solaris.c index b84fbff5e7f..10c2d6b7fa5 100644 --- a/openbsd-compat/port-solaris.c +++ b/openbsd-compat/port-solaris.c @@ -19,7 +19,6 @@ #include #include -#include #include #ifdef HAVE_FCNTL_H diff --git a/openbsd-compat/regress/Makefile.in b/openbsd-compat/regress/Makefile.in index c5aae61e2a4..dd8cdc4b7e7 100644 --- a/openbsd-compat/regress/Makefile.in +++ b/openbsd-compat/regress/Makefile.in @@ -7,7 +7,7 @@ VPATH=@srcdir@ CC=@CC@ LD=@LD@ CFLAGS=@CFLAGS@ -CPPFLAGS=-I. -I.. -I$(srcdir) -I$(srcdir)/.. @CPPFLAGS@ @DEFS@ +CPPFLAGS=-I. -I.. -I../.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../.. @CPPFLAGS@ @DEFS@ EXEEXT=@EXEEXT@ LIBCOMPAT=../libopenbsd-compat.a LIBS=@LIBS@ diff --git a/openbsd-compat/regress/closefromtest.c b/openbsd-compat/regress/closefromtest.c index 82ffeb9a761..7a69fb2b1a4 100644 --- a/openbsd-compat/regress/closefromtest.c +++ b/openbsd-compat/regress/closefromtest.c @@ -14,6 +14,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "includes.h" + #include #include @@ -24,8 +26,6 @@ #define NUM_OPENS 10 -int closefrom(int); - void fail(char *msg) { diff --git a/openbsd-compat/regress/opensslvertest.c b/openbsd-compat/regress/opensslvertest.c index 5d019b5981a..43825b24c3e 100644 --- a/openbsd-compat/regress/opensslvertest.c +++ b/openbsd-compat/regress/opensslvertest.c @@ -14,6 +14,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "includes.h" + #include #include diff --git a/openbsd-compat/regress/snprintftest.c b/openbsd-compat/regress/snprintftest.c index 6dc2e222a67..a3134db1ca9 100644 --- a/openbsd-compat/regress/snprintftest.c +++ b/openbsd-compat/regress/snprintftest.c @@ -17,6 +17,8 @@ #define BUFSZ 2048 +#include "includes.h" + #include #include #include diff --git a/openbsd-compat/regress/strduptest.c b/openbsd-compat/regress/strduptest.c index 7f6d779bedb..8a3ccf77169 100644 --- a/openbsd-compat/regress/strduptest.c +++ b/openbsd-compat/regress/strduptest.c @@ -14,6 +14,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "includes.h" + #include #include diff --git a/openbsd-compat/regress/strtonumtest.c b/openbsd-compat/regress/strtonumtest.c index 50ca5bd22d4..46bd2b91649 100644 --- a/openbsd-compat/regress/strtonumtest.c +++ b/openbsd-compat/regress/strtonumtest.c @@ -17,6 +17,8 @@ /* OPENBSD ORIGINAL: regress/lib/libc/strtonum/strtonumtest.c */ +#include "includes.h" + #include #include #include diff --git a/openbsd-compat/regress/utimensattest.c b/openbsd-compat/regress/utimensattest.c index 24312e5d828..bbc66c48523 100644 --- a/openbsd-compat/regress/utimensattest.c +++ b/openbsd-compat/regress/utimensattest.c @@ -14,6 +14,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include "includes.h" + #include #include diff --git a/openbsd-compat/setenv.c b/openbsd-compat/setenv.c index 373b701d9c6..86954c284ee 100644 --- a/openbsd-compat/setenv.c +++ b/openbsd-compat/setenv.c @@ -39,7 +39,9 @@ #include extern char **environ; +#ifndef HAVE_SETENV static char **lastenv; /* last value of environ */ +#endif /* OpenSSH Portable: __findenv is from getenv.c rev 1.8, made static */ /* diff --git a/openbsd-compat/xcrypt.c b/openbsd-compat/xcrypt.c index 360b187af9f..9cded66845c 100644 --- a/openbsd-compat/xcrypt.c +++ b/openbsd-compat/xcrypt.c @@ -54,15 +54,13 @@ # include # endif -# if defined(HAVE_MD5_PASSWORDS) && !defined(HAVE_MD5_CRYPT) -# include "md5crypt.h" -# endif - # if defined(WITH_OPENSSL) && !defined(HAVE_CRYPT) && defined(HAVE_DES_CRYPT) # include # define crypt DES_crypt # endif +#define MINIMUM(a, b) (((a) < (b)) ? (a) : (b)) + /* * Pick an appropriate password encryption type and salt for the running * system by searching through accounts until we find one that has a valid @@ -86,7 +84,7 @@ pick_salt(void) continue; if (passwd[0] == '$' && (p = strrchr(passwd+1, '$')) != NULL) { typelen = p - passwd + 1; - strlcpy(salt, passwd, MIN(typelen, sizeof(salt))); + strlcpy(salt, passwd, MINIMUM(typelen, sizeof(salt))); explicit_bzero(passwd, strlen(passwd)); goto out; } @@ -108,12 +106,7 @@ xcrypt(const char *password, const char *salt) if (salt == NULL) salt = pick_salt(); -# ifdef HAVE_MD5_PASSWORDS - if (is_md5_salt(salt)) - crypted = md5_crypt(password, salt); - else - crypted = crypt(password, salt); -# elif defined(__hpux) && !defined(HAVE_SECUREWARE) +#if defined(__hpux) && !defined(HAVE_SECUREWARE) if (iscomsec()) crypted = bigcrypt(password, salt); else @@ -122,7 +115,7 @@ xcrypt(const char *password, const char *salt) crypted = bigcrypt(password, salt); # else crypted = crypt(password, salt); -# endif +#endif return crypted; } diff --git a/opensshd.init.in b/opensshd.init.in index 99e5a51ab8b..251724805f7 100755 --- a/opensshd.init.in +++ b/opensshd.init.in @@ -17,26 +17,6 @@ PIDFILE=$piddir/sshd.pid PidFile=`grep "^PidFile" ${sysconfdir}/sshd_config | tr "=" " " | awk '{print $2}'` [ X$PidFile = X ] || PIDFILE=$PidFile SSH_KEYGEN=$prefix/bin/ssh-keygen -HOST_KEY_DSA=$sysconfdir/ssh_host_dsa_key -HOST_KEY_RSA=$sysconfdir/ssh_host_rsa_key -@COMMENT_OUT_ECC@HOST_KEY_ECDSA=$sysconfdir/ssh_host_ecdsa_key -HOST_KEY_ED25519=$sysconfdir/ssh_host_ed25519_key - - -checkkeys() { - if [ ! -f $HOST_KEY_DSA ]; then - ${SSH_KEYGEN} -t dsa -f ${HOST_KEY_DSA} -N "" - fi - if [ ! -f $HOST_KEY_RSA ]; then - ${SSH_KEYGEN} -t rsa -f ${HOST_KEY_RSA} -N "" - fi -@COMMENT_OUT_ECC@ if [ ! -f $HOST_KEY_ECDSA ]; then -@COMMENT_OUT_ECC@ ${SSH_KEYGEN} -t ecdsa -f ${HOST_KEY_ECDSA} -N "" -@COMMENT_OUT_ECC@ fi - if [ ! -f $HOST_KEY_ED25519 ]; then - ${SSH_KEYGEN} -t ed25519 -f ${HOST_KEY_ED25519} -N "" - fi -} stop_service() { if [ -r $PIDFILE -a ! -z ${PIDFILE} ]; then @@ -54,7 +34,7 @@ start_service() { # XXX we will opt out at this time. - Bal # Check to see if we have keys that need to be made - checkkeys + ${SSH_KEYGEN} -A # Start SSHD echo "starting $SSHD... \c" ; $SSHD diff --git a/oqs-template/monitor.c/apply_keystate.fragment b/oqs-template/monitor.c/apply_keystate.fragment index 8ad24cae5fe..c0d8330118a 100644 --- a/oqs-template/monitor.c/apply_keystate.fragment +++ b/oqs-template/monitor.c/apply_keystate.fragment @@ -1,12 +1,12 @@ {%- for kex in config['kexs'] %} - kex->kex[KEX_KEM_{{ kex['name']|upper }}_{{ kex['hash']|upper }}] = kex_gen_server; + kex->kex[KEX_KEM_{{ kex['name']|upper }}_{{ kex['hash']|upper }}] = kex_gen_server; {%- endfor %} #ifdef WITH_OPENSSL #ifdef OPENSSL_HAS_ECC {%- for kex in config['kexs'] -%} - {%- for curve in kex['mix_with'] %} - kex->kex[KEX_KEM_{{ kex['name']|upper }}_ECDH_{{ curve['name']|upper }}_{{ kex['hash']|upper }}] = kex_gen_server; - {%- endfor %} + {%- for curve in kex['mix_with'] %} + kex->kex[KEX_KEM_{{ kex['name']|upper }}_ECDH_{{ curve['name']|upper }}_{{ kex['hash']|upper }}] = kex_gen_server; + {%- endfor %} {%- endfor %} #endif /* OPENSSL_HAS_ECC */ #endif /* WITH_OPENSSL */ diff --git a/packet.c b/packet.c index 17f1935873b..fbc0d55eba0 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.300 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: packet.c,v 1.307 2022/01/22 00:49:34 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -795,7 +795,7 @@ uncompress_buffer(struct ssh *ssh, struct sshbuf *in, struct sshbuf *out) ssh->state->compression_in_stream.avail_out = sizeof(buf); status = inflate(&ssh->state->compression_in_stream, - Z_PARTIAL_FLUSH); + Z_SYNC_FLUSH); switch (status) { case Z_OK: if ((r = sshbuf_put(out, buf, sizeof(buf) - @@ -872,7 +872,7 @@ ssh_set_newkeys(struct ssh *ssh, int mode) int r, crypt_type; const char *dir = mode == MODE_OUT ? "out" : "in"; - debug2("set_newkeys: mode %d", mode); + debug2_f("mode %d", mode); if (mode == MODE_OUT) { ccp = &state->send_context; @@ -909,7 +909,7 @@ ssh_set_newkeys(struct ssh *ssh, int mode) return r; } mac->enabled = 1; - DBG(debug_f("cipher_init_context: %s", dir)); + DBG(debug_f("cipher_init: %s", dir)); cipher_free(*ccp); *ccp = NULL; if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len, @@ -1003,6 +1003,15 @@ ssh_packet_need_rekeying(struct ssh *ssh, u_int outbound_packet_len) (state->p_read.blocks > state->max_blocks_in)); } +int +ssh_packet_check_rekey(struct ssh *ssh) +{ + if (!ssh_packet_need_rekeying(ssh, 0)) + return 0; + debug3_f("rekex triggered"); + return kex_start_rekex(ssh); +} + /* * Delayed compression for SSH2 is enabled after authentication: * This happens on the server side after a SSH2_MSG_USERAUTH_SUCCESS is sent, @@ -1317,17 +1326,13 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) { struct session_state *state = ssh->state; int len, r, ms_remain; - fd_set *setp; + struct pollfd pfd; char buf[8192]; - struct timeval timeout, start, *timeoutp = NULL; + struct timeval start; + struct timespec timespec, *timespecp = NULL; DBG(debug("packet_read()")); - setp = calloc(howmany(state->connection_in + 1, - NFDBITS), sizeof(fd_mask)); - if (setp == NULL) - return SSH_ERR_ALLOC_FAIL; - /* * Since we are blocking, ensure that all written packets have * been sent. @@ -1348,22 +1353,20 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) * Otherwise, wait for some data to arrive, add it to the * buffer, and try again. */ - memset(setp, 0, howmany(state->connection_in + 1, - NFDBITS) * sizeof(fd_mask)); - FD_SET(state->connection_in, setp); + pfd.fd = state->connection_in; + pfd.events = POLLIN; if (state->packet_timeout_ms > 0) { ms_remain = state->packet_timeout_ms; - timeoutp = &timeout; + timespecp = ×pec; } /* Wait for some data to arrive. */ for (;;) { if (state->packet_timeout_ms > 0) { - ms_to_timeval(&timeout, ms_remain); + ms_to_timespec(×pec, ms_remain); monotime_tv(&start); } - if ((r = select(state->connection_in + 1, setp, - NULL, NULL, timeoutp)) >= 0) + if ((r = ppoll(&pfd, 1, timespecp, NULL)) >= 0) break; if (errno != EAGAIN && errno != EINTR && errno != EWOULDBLOCK) { @@ -1398,7 +1401,6 @@ ssh_packet_read_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) goto out; } out: - free(setp); return r; } @@ -1696,12 +1698,8 @@ ssh_packet_read_poll2(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) /* reset for next packet */ state->packlen = 0; - /* do we need to rekey? */ - if (ssh_packet_need_rekeying(ssh, 0)) { - debug3_f("rekex triggered"); - if ((r = kex_start_rekex(ssh)) != 0) - return r; - } + if ((r = ssh_packet_check_rekey(ssh)) != 0) + return r; out: return r; } @@ -1763,10 +1761,9 @@ ssh_packet_read_poll_seqnr(struct ssh *ssh, u_char *typep, u_int32_t *seqnr_p) } /* - * Buffers the given amount of input characters. This is intended to be used - * together with packet_read_poll. + * Buffers the supplied input data. This is intended to be used together + * with packet_read_poll(). */ - int ssh_packet_process_incoming(struct ssh *ssh, const char *buf, u_int len) { @@ -1782,9 +1779,34 @@ ssh_packet_process_incoming(struct ssh *ssh, const char *buf, u_int len) state->packet_discard -= len; return 0; } - if ((r = sshbuf_put(ssh->state->input, buf, len)) != 0) + if ((r = sshbuf_put(state->input, buf, len)) != 0) + return r; + + return 0; +} + +/* Reads and buffers data from the specified fd */ +int +ssh_packet_process_read(struct ssh *ssh, int fd) +{ + struct session_state *state = ssh->state; + int r; + size_t rlen; + + if ((r = sshbuf_read(fd, state->input, PACKET_MAX_SIZE, &rlen)) != 0) return r; + if (state->packet_discard) { + if ((r = sshbuf_consume_end(state->input, rlen)) != 0) + return r; + state->keep_alive_timeouts = 0; /* ?? */ + if (rlen >= state->packet_discard) { + if ((r = ssh_packet_stop_discard(ssh)) != 0) + return r; + } + state->packet_discard -= rlen; + return 0; + } return 0; } @@ -1982,35 +2004,28 @@ ssh_packet_write_poll(struct ssh *ssh) int ssh_packet_write_wait(struct ssh *ssh) { - fd_set *setp; int ret, r, ms_remain = 0; - struct timeval start, timeout, *timeoutp = NULL; + struct timeval start; + struct timespec timespec, *timespecp = NULL; struct session_state *state = ssh->state; + struct pollfd pfd; - setp = calloc(howmany(state->connection_out + 1, - NFDBITS), sizeof(fd_mask)); - if (setp == NULL) - return SSH_ERR_ALLOC_FAIL; - if ((r = ssh_packet_write_poll(ssh)) != 0) { - free(setp); + if ((r = ssh_packet_write_poll(ssh)) != 0) return r; - } while (ssh_packet_have_data_to_write(ssh)) { - memset(setp, 0, howmany(state->connection_out + 1, - NFDBITS) * sizeof(fd_mask)); - FD_SET(state->connection_out, setp); + pfd.fd = state->connection_out; + pfd.events = POLLOUT; if (state->packet_timeout_ms > 0) { ms_remain = state->packet_timeout_ms; - timeoutp = &timeout; + timespecp = ×pec; } for (;;) { if (state->packet_timeout_ms > 0) { - ms_to_timeval(&timeout, ms_remain); + ms_to_timespec(×pec, ms_remain); monotime_tv(&start); } - if ((ret = select(state->connection_out + 1, - NULL, setp, NULL, timeoutp)) >= 0) + if ((ret = ppoll(&pfd, 1, timespecp, NULL)) >= 0) break; if (errno != EAGAIN && errno != EINTR && errno != EWOULDBLOCK) @@ -2023,16 +2038,11 @@ ssh_packet_write_wait(struct ssh *ssh) break; } } - if (ret == 0) { - free(setp); + if (ret == 0) return SSH_ERR_CONN_TIMEOUT; - } - if ((r = ssh_packet_write_poll(ssh)) != 0) { - free(setp); + if ((r = ssh_packet_write_poll(ssh)) != 0) return r; - } } - free(setp); return 0; } @@ -2098,16 +2108,16 @@ ssh_packet_set_maxsize(struct ssh *ssh, u_int s) struct session_state *state = ssh->state; if (state->set_maxsize_called) { - logit("packet_set_maxsize: called twice: old %d new %d", + logit_f("called twice: old %d new %d", state->max_packet_size, s); return -1; } if (s < 4 * 1024 || s > 1024 * 1024) { - logit("packet_set_maxsize: bad size %d", s); + logit_f("bad size %d", s); return -1; } state->set_maxsize_called = 1; - debug("packet_set_maxsize: setting to %d", s); + debug_f("setting to %d", s); state->max_packet_size = s; return s; } diff --git a/packet.h b/packet.h index c2544bd9660..176488b1e5d 100644 --- a/packet.h +++ b/packet.h @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.h,v 1.92 2020/03/06 18:11:10 markus Exp $ */ +/* $OpenBSD: packet.h,v 1.94 2022/01/22 00:49:34 djm Exp $ */ /* * Author: Tatu Ylonen @@ -105,6 +105,7 @@ void ssh_packet_clear_keys(struct ssh *); void ssh_clear_newkeys(struct ssh *, int); int ssh_packet_is_rekeying(struct ssh *); +int ssh_packet_check_rekey(struct ssh *); void ssh_packet_set_protocol_flags(struct ssh *, u_int); u_int ssh_packet_get_protocol_flags(struct ssh *); void ssh_packet_set_tos(struct ssh *, int); @@ -127,6 +128,7 @@ int ssh_packet_read_expect(struct ssh *, u_int type); int ssh_packet_read_poll(struct ssh *); int ssh_packet_read_poll2(struct ssh *, u_char *, u_int32_t *seqnr_p); int ssh_packet_process_incoming(struct ssh *, const char *buf, u_int len); +int ssh_packet_process_read(struct ssh *, int); int ssh_packet_read_seqnr(struct ssh *, u_char *, u_int32_t *seqnr_p); int ssh_packet_read_poll_seqnr(struct ssh *, u_char *, u_int32_t *seqnr_p); diff --git a/platform-tracing.c b/platform-tracing.c index 4c80a282c49..c2810f2d0b3 100644 --- a/platform-tracing.c +++ b/platform-tracing.c @@ -17,6 +17,9 @@ #include "includes.h" #include +#ifdef HAVE_SYS_PROCCTL_H +#include +#endif #if defined(HAVE_SYS_PRCTL_H) #include /* For prctl() and PR_SET_DUMPABLE */ #endif @@ -27,25 +30,37 @@ #include /* For setpflags() and __PROC_PROTECT */ #endif #include +#include +#include #include "log.h" void platform_disable_tracing(int strict) { +#if defined(HAVE_PROCCTL) && defined(PROC_TRACE_CTL) + /* On FreeBSD, we should make this process untraceable */ + int disable_trace = PROC_TRACE_CTL_DISABLE; + + if (procctl(P_PID, 0, PROC_TRACE_CTL, &disable_trace) && strict) + fatal("unable to make the process untraceable: %s", + strerror(errno)); +#endif #if defined(HAVE_PRCTL) && defined(PR_SET_DUMPABLE) /* Disable ptrace on Linux without sgid bit */ if (prctl(PR_SET_DUMPABLE, 0) != 0 && strict) - fatal("unable to make the process undumpable"); + fatal("unable to make the process undumpable: %s", + strerror(errno)); #endif #if defined(HAVE_SETPFLAGS) && defined(__PROC_PROTECT) /* On Solaris, we should make this process untraceable */ if (setpflags(__PROC_PROTECT, 1) != 0 && strict) - fatal("unable to make the process untraceable"); + fatal("unable to make the process untraceable: %s", + strerror(errno)); #endif #ifdef PT_DENY_ATTACH /* Mac OS X */ if (ptrace(PT_DENY_ATTACH, 0, 0, 0) == -1 && strict) - fatal("unable to set PT_DENY_ATTACH"); + fatal("unable to set PT_DENY_ATTACH: %s", strerror(errno)); #endif } diff --git a/readconf.c b/readconf.c index 2fc3b4dc495..9f6f91742db 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.353 2021/04/03 06:18:40 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.366 2022/02/08 08:59:12 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -145,7 +145,7 @@ typedef enum { oForwardAgent, oForwardX11, oForwardX11Trusted, oForwardX11Timeout, oGatewayPorts, oExitOnForwardFailure, oPasswordAuthentication, - oChallengeResponseAuthentication, oXAuthLocation, + oXAuthLocation, oIdentityFile, oHostname, oPort, oRemoteForward, oLocalForward, oPermitRemoteOpen, oCertificateFile, oAddKeysToAgent, oIdentityAgent, @@ -167,7 +167,8 @@ typedef enum { oTunnel, oTunnelDevice, oLocalCommand, oPermitLocalCommand, oRemoteCommand, oVisualHostKey, - oKexAlgorithms, oIPQoS, oRequestTTY, oIgnoreUnknown, oProxyUseFdpass, + oKexAlgorithms, oIPQoS, oRequestTTY, oSessionType, oStdinNull, + oForkAfterAuthentication, oIgnoreUnknown, oProxyUseFdpass, oCanonicalDomains, oCanonicalizeHostname, oCanonicalizeMaxDots, oCanonicalizeFallbackLocal, oCanonicalizePermittedCNAMEs, oStreamLocalBindMask, oStreamLocalBindUnlink, oRevokedHostKeys, @@ -228,12 +229,12 @@ static struct { { "passwordauthentication", oPasswordAuthentication }, { "kbdinteractiveauthentication", oKbdInteractiveAuthentication }, { "kbdinteractivedevices", oKbdInteractiveDevices }, + { "challengeresponseauthentication", oKbdInteractiveAuthentication }, /* alias */ + { "skeyauthentication", oKbdInteractiveAuthentication }, /* alias */ + { "tisauthentication", oKbdInteractiveAuthentication }, /* alias */ { "pubkeyauthentication", oPubkeyAuthentication }, { "dsaauthentication", oPubkeyAuthentication }, /* alias */ { "hostbasedauthentication", oHostbasedAuthentication }, - { "challengeresponseauthentication", oChallengeResponseAuthentication }, - { "skeyauthentication", oUnsupported }, - { "tisauthentication", oChallengeResponseAuthentication }, /* alias */ { "identityfile", oIdentityFile }, { "identityfile2", oIdentityFile }, /* obsolete */ { "identitiesonly", oIdentitiesOnly }, @@ -297,6 +298,9 @@ static struct { { "kexalgorithms", oKexAlgorithms }, { "ipqos", oIPQoS }, { "requesttty", oRequestTTY }, + { "sessiontype", oSessionType }, + { "stdinnull", oStdinNull }, + { "forkafterauthentication", oForkAfterAuthentication }, { "proxyusefdpass", oProxyUseFdpass }, { "canonicaldomains", oCanonicalDomains }, { "canonicalizefallbacklocal", oCanonicalizeFallbackLocal }, @@ -308,7 +312,7 @@ static struct { { "revokedhostkeys", oRevokedHostKeys }, { "fingerprinthash", oFingerprintHash }, { "updatehostkeys", oUpdateHostkeys }, - { "hostbasedalgorithms", oHostbasedAcceptedAlgorithms }, + { "hostbasedacceptedalgorithms", oHostbasedAcceptedAlgorithms }, { "hostbasedkeytypes", oHostbasedAcceptedAlgorithms }, /* obsolete */ { "pubkeyacceptedalgorithms", oPubkeyAcceptedAlgorithms }, { "pubkeyacceptedkeytypes", oPubkeyAcceptedAlgorithms }, /* obsolete */ @@ -603,25 +607,33 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, debug2("checking match for '%s' host %s originally %s", cp, host, original_host); while ((oattrib = attrib = strdelim(&cp)) && *attrib != '\0') { - criteria = NULL; + /* Terminate on comment */ + if (*attrib == '#') { + cp = NULL; /* mark all arguments consumed */ + break; + } + arg = criteria = NULL; this_result = 1; if ((negate = attrib[0] == '!')) attrib++; - /* criteria "all" and "canonical" have no argument */ + /* Criterion "all" has no argument and must appear alone */ if (strcasecmp(attrib, "all") == 0) { - if (attributes > 1 || - ((arg = strdelim(&cp)) != NULL && *arg != '\0')) { + if (attributes > 1 || ((arg = strdelim(&cp)) != NULL && + *arg != '\0' && *arg != '#')) { error("%.200s line %d: '%s' cannot be combined " "with other Match attributes", filename, linenum, oattrib); result = -1; goto out; } + if (arg != NULL && *arg == '#') + cp = NULL; /* mark all arguments consumed */ if (result) result = negate ? 0 : 1; goto out; } attributes++; + /* criteria "final" and "canonical" have no argument */ if (strcasecmp(attrib, "canonical") == 0 || strcasecmp(attrib, "final") == 0) { /* @@ -640,7 +652,8 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, continue; } /* All other criteria require an argument */ - if ((arg = strdelim(&cp)) == NULL || *arg == '\0') { + if ((arg = strdelim(&cp)) == NULL || + *arg == '\0' || *arg == '#') { error("Missing Match criteria for %s", attrib); result = -1; goto out; @@ -863,6 +876,12 @@ static const struct multistate multistate_requesttty[] = { { "auto", REQUEST_TTY_AUTO }, { NULL, -1 } }; +static const struct multistate multistate_sessiontype[] = { + { "none", SESSION_TYPE_NONE }, + { "subsystem", SESSION_TYPE_SUBSYSTEM }, + { "default", SESSION_TYPE_DEFAULT }, + { NULL, -1 } +}; static const struct multistate multistate_canonicalizehostname[] = { { "true", SSH_CANONICALISE_YES }, { "false", SSH_CANONICALISE_NO }, @@ -871,6 +890,15 @@ static const struct multistate multistate_canonicalizehostname[] = { { "always", SSH_CANONICALISE_ALWAYS }, { NULL, -1 } }; +static const struct multistate multistate_pubkey_auth[] = { + { "true", SSH_PUBKEY_AUTH_ALL }, + { "false", SSH_PUBKEY_AUTH_NO }, + { "yes", SSH_PUBKEY_AUTH_ALL }, + { "no", SSH_PUBKEY_AUTH_NO }, + { "unbound", SSH_PUBKEY_AUTH_UNBOUND }, + { "host-bound", SSH_PUBKEY_AUTH_HBOUND }, + { NULL, -1 } +}; static const struct multistate multistate_compression[] = { #ifdef WITH_ZLIB { "yes", COMP_ZLIB }, @@ -915,7 +943,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, const char *original_host, char *line, const char *filename, int linenum, int *activep, int flags, int *want_final_pass, int depth) { - char *s, **charptr, *endofnumber, *keyword, *arg, *arg2, *p, ch; + char *str, **charptr, *endofnumber, *keyword, *arg, *arg2, *p; char **cpptr, ***cppptr, fwdarg[256]; u_int i, *uintptr, uvalue, max_entries = 0; int r, oactive, negated, opcode, *intptr, value, value2, cmdline = 0; @@ -929,6 +957,9 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, struct allowed_cname *cname; glob_t gl; const char *errstr; + char **oav = NULL, **av; + int oac = 0, ac; + int ret = -1; if (activep == NULL) { /* We are processing a command line directive */ cmdline = 1; @@ -944,46 +975,62 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, line[len] = '\0'; } - s = line; + str = line; /* Get the keyword. (Each line is supposed to begin with a keyword). */ - if ((keyword = strdelim(&s)) == NULL) + if ((keyword = strdelim(&str)) == NULL) return 0; /* Ignore leading whitespace. */ if (*keyword == '\0') - keyword = strdelim(&s); + keyword = strdelim(&str); if (keyword == NULL || !*keyword || *keyword == '\n' || *keyword == '#') return 0; /* Match lowercase keyword */ lowercase(keyword); + /* Prepare to parse remainder of line */ + if (str != NULL) + str += strspn(str, WHITESPACE); + if (str == NULL || *str == '\0') { + error("%s line %d: no argument after keyword \"%s\"", + filename, linenum, keyword); + return -1; + } opcode = parse_token(keyword, filename, linenum, options->ignored_unknown); + if (argv_split(str, &oac, &oav, 1) != 0) { + error("%s line %d: invalid quotes", filename, linenum); + return -1; + } + ac = oac; + av = oav; switch (opcode) { case oBadOption: /* don't panic, but count bad options */ - return -1; + goto out; case oIgnore: - return 0; + argv_consume(&ac); + break; case oIgnoredUnknownOption: debug("%s line %d: Ignored unknown option \"%s\"", filename, linenum, keyword); - return 0; + argv_consume(&ac); + break; case oConnectTimeout: intptr = &options->connection_timeout; parse_time: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%s line %d: missing time value.", filename, linenum); - return -1; + goto out; } if (strcmp(arg, "none") == 0) value = -1; else if ((value = convtime(arg)) == -1) { error("%s line %d: invalid time value.", filename, linenum); - return -1; + goto out; } if (*activep && *intptr == -1) *intptr = value; @@ -992,11 +1039,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oForwardAgent: intptr = &options->forward_agent; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%s line %d: missing argument.", filename, linenum); - return -1; + goto out; } value = -1; @@ -1024,12 +1071,12 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, parse_flag: multistate_ptr = multistate_flag; parse_multistate: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if ((value = parse_multistate_value(arg, filename, linenum, multistate_ptr)) == -1) { error("%s line %d: unsupported option \"%s\".", filename, linenum, arg); - return -1; + goto out; } if (*activep && *intptr == -1) *intptr = value; @@ -1064,17 +1111,14 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_string; case oPubkeyAuthentication: + multistate_ptr = multistate_pubkey_auth; intptr = &options->pubkey_authentication; - goto parse_flag; + goto parse_multistate; case oHostbasedAuthentication: intptr = &options->hostbased_authentication; goto parse_flag; - case oChallengeResponseAuthentication: - intptr = &options->challenge_response_authentication; - goto parse_flag; - case oGssAuthentication: intptr = &options->gss_authentication; goto parse_flag; @@ -1119,11 +1163,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_int; case oRekeyLimit: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (strcmp(arg, "default") == 0) { val64 = 0; @@ -1131,19 +1175,19 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (scan_scaled(arg, &val64) == -1) { error("%.200s line %d: Bad number '%s': %s", filename, linenum, arg, strerror(errno)); - return -1; + goto out; } if (val64 != 0 && val64 < 16) { error("%.200s line %d: RekeyLimit too small", filename, linenum); - return -1; + goto out; } } if (*activep && options->rekey_limit == -1) options->rekey_limit = val64; - if (s != NULL) { /* optional rekey interval present */ - if (strcmp(s, "none") == 0) { - (void)strdelim(&s); /* discard */ + if (ac != 0) { /* optional rekey interval present */ + if (strcmp(av[0], "none") == 0) { + (void)argv_next(&ac, &av); /* discard */ break; } intptr = &options->rekey_interval; @@ -1152,11 +1196,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, break; case oIdentityFile: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*activep) { intptr = &options->num_identity_files; @@ -1164,7 +1208,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, error("%.200s line %d: Too many identity files " "specified (max %d).", filename, linenum, SSH_MAX_IDENTITY_FILES); - return -1; + goto out; } add_identity_file(options, NULL, arg, flags & SSHCONF_USERCONF); @@ -1172,11 +1216,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, break; case oCertificateFile: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*activep) { intptr = &options->num_certificate_files; @@ -1185,7 +1229,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, "files specified (max %d).", filename, linenum, SSH_MAX_CERTIFICATE_FILES); - return -1; + goto out; } add_certificate_file(options, arg, flags & SSHCONF_USERCONF); @@ -1199,11 +1243,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oUser: charptr = &options->user; parse_string: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*activep && *charptr == NULL) *charptr = xstrdup(arg); @@ -1214,17 +1258,35 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, uintptr = &options->num_system_hostfiles; max_entries = SSH_MAX_HOSTS_FILES; parse_char_array: - if (*activep && *uintptr == 0) { - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + i = 0; + value = *uintptr == 0; /* was array empty when we started? */ + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0') { + error("%s line %d: keyword %s empty argument", + filename, linenum, keyword); + goto out; + } + /* Allow "none" only in first position */ + if (strcasecmp(arg, "none") == 0) { + if (i > 0 || ac > 0) { + error("%s line %d: keyword %s \"none\" " + "argument must appear alone.", + filename, linenum, keyword); + goto out; + } + } + i++; + if (*activep && value) { if ((*uintptr) >= max_entries) { - error("%s line %d: too many known " - "hosts files.", filename, linenum); - return -1; + error("%s line %d: too many %s " + "entries.", filename, linenum, + keyword); + goto out; } cpptr[(*uintptr)++] = xstrdup(arg); } } - return 0; + break; case oUserKnownHostsFile: cpptr = (char **)&options->user_hostfiles; @@ -1270,42 +1332,45 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (options->jump_host != NULL) charptr = &options->jump_host; /* Skip below */ parse_command: - if (s == NULL) { + if (str == NULL) { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } - len = strspn(s, WHITESPACE "="); + len = strspn(str, WHITESPACE "="); if (*activep && *charptr == NULL) - *charptr = xstrdup(s + len); - return 0; + *charptr = xstrdup(str + len); + argv_consume(&ac); + break; case oProxyJump: - if (s == NULL) { + if (str == NULL) { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } - len = strspn(s, WHITESPACE "="); - if (parse_jump(s + len, options, *activep) == -1) { + len = strspn(str, WHITESPACE "="); + /* XXX use argv? */ + if (parse_jump(str + len, options, *activep) == -1) { error("%.200s line %d: Invalid ProxyJump \"%s\"", - filename, linenum, s + len); - return -1; + filename, linenum, str + len); + goto out; } - return 0; + argv_consume(&ac); + break; case oPort: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } value = a2port(arg); if (value <= 0) { error("%.200s line %d: Bad port '%s'.", filename, linenum, arg); - return -1; + goto out; } if (*activep && options->port == -1) options->port = value; @@ -1314,63 +1379,63 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oConnectionAttempts: intptr = &options->connection_attempts; parse_int: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if ((errstr = atoi_err(arg, &value)) != NULL) { error("%s line %d: integer value %s.", filename, linenum, errstr); - return -1; + goto out; } if (*activep && *intptr == -1) *intptr = value; break; case oCiphers: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*arg != '-' && !ciphers_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg)){ error("%.200s line %d: Bad SSH2 cipher spec '%s'.", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*activep && options->ciphers == NULL) options->ciphers = xstrdup(arg); break; case oMacs: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*arg != '-' && !mac_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg)) { error("%.200s line %d: Bad SSH2 MAC spec '%s'.", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*activep && options->macs == NULL) options->macs = xstrdup(arg); break; case oKexAlgorithms: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*arg != '-' && !kex_names_valid(*arg == '+' || *arg == '^' ? arg + 1 : arg)) { error("%.200s line %d: Bad SSH2 KexAlgorithms '%s'.", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*activep && options->kex_algorithms == NULL) options->kex_algorithms = xstrdup(arg); @@ -1379,18 +1444,18 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oHostKeyAlgorithms: charptr = &options->hostkeyalgorithms; parse_pubkey_algos: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (*arg != '-' && !sshkey_names_valid2(*arg == '+' || *arg == '^' ? arg + 1 : arg, 1)) { error("%s line %d: Bad key types '%s'.", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*activep && *charptr == NULL) *charptr = xstrdup(arg); @@ -1402,12 +1467,12 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oLogLevel: log_level_ptr = &options->log_level; - arg = strdelim(&s); + arg = argv_next(&ac, &av); value = log_level_number(arg); if (value == SYSLOG_LEVEL_NOT_SET) { error("%.200s line %d: unsupported log level '%s'", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*activep && *log_level_ptr == SYSLOG_LEVEL_NOT_SET) *log_level_ptr = (LogLevel) value; @@ -1415,12 +1480,12 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oLogFacility: log_facility_ptr = &options->log_facility; - arg = strdelim(&s); + arg = argv_next(&ac, &av); value = log_facility_number(arg); if (value == SYSLOG_FACILITY_NOT_SET) { error("%.200s line %d: unsupported log facility '%s'", filename, linenum, arg ? arg : ""); - return -1; + goto out; } if (*log_facility_ptr == -1) *log_facility_ptr = (SyslogFacility) value; @@ -1429,37 +1494,53 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oLogVerbose: cppptr = &options->log_verbose; uintptr = &options->num_log_verbose; - if (*activep && *uintptr == 0) { - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + i = 0; + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0') { + error("%s line %d: keyword %s empty argument", + filename, linenum, keyword); + goto out; + } + /* Allow "none" only in first position */ + if (strcasecmp(arg, "none") == 0) { + if (i > 0 || ac > 0) { + error("%s line %d: keyword %s \"none\" " + "argument must appear alone.", + filename, linenum, keyword); + goto out; + } + } + i++; + if (*activep && *uintptr == 0) { *cppptr = xrecallocarray(*cppptr, *uintptr, *uintptr + 1, sizeof(**cppptr)); (*cppptr)[(*uintptr)++] = xstrdup(arg); } } - return 0; + break; case oLocalForward: case oRemoteForward: case oDynamicForward: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } remotefwd = (opcode == oRemoteForward); dynamicfwd = (opcode == oDynamicForward); if (!dynamicfwd) { - arg2 = strdelim(&s); + arg2 = argv_next(&ac, &av); if (arg2 == NULL || *arg2 == '\0') { if (remotefwd) dynamicfwd = 1; else { error("%.200s line %d: Missing target " "argument.", filename, linenum); - return -1; + goto out; } } else { /* construct a string for parse_forward */ @@ -1473,7 +1554,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (parse_forward(&fwd, fwdarg, dynamicfwd, remotefwd) == 0) { error("%.200s line %d: Bad forwarding specification.", filename, linenum); - return -1; + goto out; } if (*activep) { @@ -1488,7 +1569,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oPermitRemoteOpen: uintptr = &options->num_permitted_remote_opens; cppptr = &options->permitted_remote_opens; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') fatal("%s line %d: missing %s specification", filename, linenum, lookup_opcode_name(opcode)); @@ -1501,11 +1582,10 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, } break; } - for (; arg != NULL && *arg != '\0'; arg = strdelim(&s)) { + while ((arg = argv_next(&ac, &av)) != NULL) { arg2 = xstrdup(arg); - ch = '\0'; - p = hpdelim2(&arg, &ch); - if (p == NULL || ch == '/') { + p = hpdelim(&arg); + if (p == NULL) { fatal("%s line %d: missing host in %s", filename, linenum, lookup_opcode_name(opcode)); @@ -1538,13 +1618,20 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (cmdline) { error("Host directive not supported as a command-line " "option"); - return -1; + goto out; } *activep = 0; arg2 = NULL; - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { - if ((flags & SSHCONF_NEVERMATCH) != 0) + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0') { + error("%s line %d: keyword %s empty argument", + filename, linenum, keyword); + goto out; + } + if ((flags & SSHCONF_NEVERMATCH) != 0) { + argv_consume(&ac); break; + } negated = *arg == '!'; if (negated) arg++; @@ -1555,6 +1642,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, "for %.100s", filename, linenum, arg); *activep = 0; + argv_consume(&ac); break; } if (!*activep) @@ -1565,33 +1653,39 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (*activep) debug("%.200s line %d: Applying options for %.100s", filename, linenum, arg2); - /* Avoid garbage check below, as strdelim is done. */ - return 0; + break; case oMatch: if (cmdline) { error("Host directive not supported as a command-line " "option"); - return -1; + goto out; } - value = match_cfg_line(options, &s, pw, host, original_host, + value = match_cfg_line(options, &str, pw, host, original_host, flags & SSHCONF_FINAL, want_final_pass, filename, linenum); if (value < 0) { error("%.200s line %d: Bad Match condition", filename, linenum); - return -1; + goto out; } *activep = (flags & SSHCONF_NEVERMATCH) ? 0 : value; + /* + * If match_cfg_line() didn't consume all its arguments then + * arrange for the extra arguments check below to fail. + */ + + if (str == NULL || *str == '\0') + argv_consume(&ac); break; case oEscapeChar: intptr = &options->escape_char; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if (strcmp(arg, "none") == 0) value = SSH_ESCAPECHAR_NONE; @@ -1603,7 +1697,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, else { error("%.200s line %d: Bad escape character.", filename, linenum); - return -1; + goto out; } if (*activep && *intptr == -1) *intptr = value; @@ -1631,11 +1725,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_int; case oSendEnv: - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { - if (strchr(arg, '=') != NULL) { + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0' || strchr(arg, '=') != NULL) { error("%s line %d: Invalid environment name.", filename, linenum); - return -1; + goto out; } if (!*activep) continue; @@ -1648,7 +1742,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (options->num_send_env >= INT_MAX) { error("%s line %d: too many send env.", filename, linenum); - return -1; + goto out; } options->send_env = xrecallocarray( options->send_env, options->num_send_env, @@ -1662,11 +1756,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oSetEnv: value = options->num_setenv; - while ((arg = strdelimw(&s)) != NULL && *arg != '\0') { + while ((arg = argv_next(&ac, &av)) != NULL) { if (strchr(arg, '=') == NULL) { error("%s line %d: Invalid SetEnv.", filename, linenum); - return -1; + goto out; } if (!*activep || value != 0) continue; @@ -1674,7 +1768,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (options->num_setenv >= INT_MAX) { error("%s line %d: too many SetEnv.", filename, linenum); - return -1; + goto out; } options->setenv = xrecallocarray( options->setenv, options->num_setenv, @@ -1695,11 +1789,11 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oControlPersist: /* no/false/yes/true, or a time spec */ intptr = &options->control_persist; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing ControlPersist" " argument.", filename, linenum); - return -1; + goto out; } value = 0; value2 = 0; /* timeout */ @@ -1712,7 +1806,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, else { error("%.200s line %d: Bad ControlPersist argument.", filename, linenum); - return -1; + goto out; } if (*activep && *intptr == -1) { *intptr = value; @@ -1730,19 +1824,19 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_multistate; case oTunnelDevice: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } value = a2tun(arg, &value2); if (value == SSH_TUNID_ERR) { error("%.200s line %d: Bad tun device.", filename, linenum); - return -1; + goto out; } - if (*activep) { + if (*activep && options->tun_local == -1) { options->tun_local = value; options->tun_remote = value2; } @@ -1768,10 +1862,15 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (cmdline) { error("Include directive not supported as a " "command-line option"); - return -1; + goto out; } value = 0; - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0') { + error("%s line %d: keyword %s empty argument", + filename, linenum, keyword); + goto out; + } /* * Ensure all paths are anchored. User configuration * files may begin with '~/' but system configurations @@ -1782,7 +1881,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, if (*arg == '~' && (flags & SSHCONF_USERCONF) == 0) { error("%.200s line %d: bad include path %s.", filename, linenum, arg); - return -1; + goto out; } if (!path_absolute(arg) && *arg != '~') { xasprintf(&arg2, "%s/%s", @@ -1800,7 +1899,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, } else if (r != 0) { error("%.200s line %d: glob failed for %s.", filename, linenum, arg2); - return -1; + goto out; } free(arg2); oactive = *activep; @@ -1819,7 +1918,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, "%.100s: %.100s", gl.gl_pathv[i], strerror(errno)); globfree(&gl); - return -1; + goto out; } /* * don't let Match in includes clobber the @@ -1832,25 +1931,25 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, globfree(&gl); } if (value != 0) - return value; + ret = value; break; case oIPQoS: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if ((value = parse_ipqos(arg)) == -1) { error("%s line %d: Bad IPQoS value: %s", filename, linenum, arg); - return -1; + goto out; } - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (arg == NULL) value2 = value; else if ((value2 = parse_ipqos(arg)) == -1) { error("%s line %d: Bad IPQoS value: %s", filename, linenum, arg); - return -1; + goto out; } - if (*activep) { + if (*activep && options->ip_qos_interactive == -1) { options->ip_qos_interactive = value; options->ip_qos_bulk = value2; } @@ -1861,6 +1960,19 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, multistate_ptr = multistate_requesttty; goto parse_multistate; + case oSessionType: + intptr = &options->session_type; + multistate_ptr = multistate_sessiontype; + goto parse_multistate; + + case oStdinNull: + intptr = &options->stdin_null; + goto parse_flag; + + case oForkAfterAuthentication: + intptr = &options->fork_after_authentication; + goto parse_flag; + case oIgnoreUnknown: charptr = &options->ignored_unknown; goto parse_string; @@ -1871,11 +1983,27 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oCanonicalDomains: value = options->num_canonical_domains != 0; - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { + i = 0; + while ((arg = argv_next(&ac, &av)) != NULL) { + if (*arg == '\0') { + error("%s line %d: keyword %s empty argument", + filename, linenum, keyword); + goto out; + } + /* Allow "none" only in first position */ + if (strcasecmp(arg, "none") == 0) { + if (i > 0 || ac > 0) { + error("%s line %d: keyword %s \"none\" " + "argument must appear alone.", + filename, linenum, keyword); + goto out; + } + } + i++; if (!valid_domain(arg, 1, &errstr)) { error("%s line %d: %s", filename, linenum, errstr); - return -1; + goto out; } if (!*activep || value) continue; @@ -1883,7 +2011,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, MAX_CANON_DOMAINS) { error("%s line %d: too many hostname suffixes.", filename, linenum); - return -1; + goto out; } options->canonical_domains[ options->num_canonical_domains++] = xstrdup(arg); @@ -1892,29 +2020,42 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oCanonicalizePermittedCNAMEs: value = options->num_permitted_cnames != 0; - while ((arg = strdelim(&s)) != NULL && *arg != '\0') { - /* Either '*' for everything or 'list:list' */ - if (strcmp(arg, "*") == 0) + i = 0; + while ((arg = argv_next(&ac, &av)) != NULL) { + /* + * Either 'none' (only in first position), '*' for + * everything or 'list:list' + */ + if (strcasecmp(arg, "none") == 0) { + if (i > 0 || ac > 0) { + error("%s line %d: keyword %s \"none\" " + "argument must appear alone.", + filename, linenum, keyword); + goto out; + } + arg2 = ""; + } else if (strcmp(arg, "*") == 0) { arg2 = arg; - else { + } else { lowercase(arg); if ((arg2 = strchr(arg, ':')) == NULL || arg2[1] == '\0') { error("%s line %d: " "Invalid permitted CNAME \"%s\"", filename, linenum, arg); - return -1; + goto out; } *arg2 = '\0'; arg2++; } + i++; if (!*activep || value) continue; if (options->num_permitted_cnames >= MAX_CANON_DOMAINS) { error("%s line %d: too many permitted CNAMEs.", filename, linenum); - return -1; + goto out; } cname = options->permitted_cnames + options->num_permitted_cnames++; @@ -1937,17 +2078,17 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_flag; case oStreamLocalBindMask: - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing StreamLocalBindMask " "argument.", filename, linenum); - return -1; + goto out; } /* Parse mode in octal format */ value = strtol(arg, &endofnumber, 8); if (arg == endofnumber || value < 0 || value > 0777) { error("%.200s line %d: Bad mask.", filename, linenum); - return -1; + goto out; } options->fwd_opts.streamlocal_bind_mask = (mode_t)value; break; @@ -1962,16 +2103,16 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oFingerprintHash: intptr = &options->fingerprint_hash; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } if ((value = ssh_digest_alg_by_name(arg)) == -1) { error("%.200s line %d: Invalid hash algorithm \"%s\".", filename, linenum, arg); - return -1; + goto out; } if (*activep && *intptr == -1) *intptr = value; @@ -1991,8 +2132,8 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, goto parse_pubkey_algos; case oAddKeysToAgent: - arg = strdelim(&s); - arg2 = strdelim(&s); + arg = argv_next(&ac, &av); + arg2 = argv_next(&ac, &av); value = parse_multistate_value(arg, filename, linenum, multistate_yesnoaskconfirm); value2 = 0; /* unlimited lifespan by default */ @@ -2002,20 +2143,20 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, value2 > INT_MAX) { error("%s line %d: invalid time value.", filename, linenum); - return -1; + goto out; } } else if (value == -1 && arg2 == NULL) { if ((value2 = convtime(arg)) == -1 || value2 > INT_MAX) { error("%s line %d: unsupported option", filename, linenum); - return -1; + goto out; } value = 1; /* yes */ } else if (value == -1 || arg2 != NULL) { error("%s line %d: unsupported option", filename, linenum); - return -1; + goto out; } if (*activep && options->add_keys_to_agent == -1) { options->add_keys_to_agent = value; @@ -2025,18 +2166,18 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oIdentityAgent: charptr = &options->identity_agent; - arg = strdelim(&s); + arg = argv_next(&ac, &av); if (!arg || *arg == '\0') { error("%.200s line %d: Missing argument.", filename, linenum); - return -1; + goto out; } parse_agent_path: /* Extra validation if the string represents an env var. */ if ((arg2 = dollar_expand(&r, arg)) == NULL || r) { error("%.200s line %d: Invalid environment expansion " "%s.", filename, linenum, arg); - return -1; + goto out; } free(arg2); /* check for legacy environment format */ @@ -2044,7 +2185,7 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, !valid_env_name(arg + 1)) { error("%.200s line %d: Invalid environment name %s.", filename, linenum, arg); - return -1; + goto out; } if (*activep && *charptr == NULL) *charptr = xstrdup(arg); @@ -2053,25 +2194,33 @@ process_config_line_depth(Options *options, struct passwd *pw, const char *host, case oDeprecated: debug("%s line %d: Deprecated option \"%s\"", filename, linenum, keyword); - return 0; + argv_consume(&ac); + break; case oUnsupported: error("%s line %d: Unsupported option \"%s\"", filename, linenum, keyword); - return 0; + argv_consume(&ac); + break; default: error("%s line %d: Unimplemented opcode %d", filename, linenum, opcode); + goto out; } /* Check that there is no garbage at end of line. */ - if ((arg = strdelim(&s)) != NULL && *arg != '\0') { - error("%.200s line %d: garbage at end of line; \"%.200s\".", - filename, linenum, arg); - return -1; + if (ac > 0) { + error("%.200s line %d: keyword %s extra arguments " + "at end of line", filename, linenum, keyword); + goto out; } - return 0; + + /* success */ + ret = 0; + out: + argv_free(oav, oac); + return ret; } /* @@ -2133,8 +2282,6 @@ read_config_file_depth(const char *filename, struct passwd *pw, * NB - preserve newlines, they are needed to reproduce * line numbers later for error messages. */ - if ((cp = strchr(line, '#')) != NULL) - *cp = '\0'; if (process_config_line_depth(options, pw, host, original_host, line, filename, linenum, activep, flags, want_final_pass, depth) != 0) @@ -2155,6 +2302,20 @@ option_clear_or_none(const char *o) return o == NULL || strcasecmp(o, "none") == 0; } +/* + * Returns 1 if CanonicalizePermittedCNAMEs have been specified, 0 otherwise. + * Allowed to be called on non-final configuration. + */ +int +config_has_permitted_cnames(Options *options) +{ + if (options->num_permitted_cnames == 1 && + strcasecmp(options->permitted_cnames[0].source_list, "none") == 0 && + strcmp(options->permitted_cnames[0].target_list, "") == 0) + return 0; + return options->num_permitted_cnames > 0; +} + /* * Initializes options to special values that indicate that they have not yet * been set. Read_config_file will only set options with this value. Options @@ -2180,7 +2341,6 @@ initialize_options(Options * options) options->fwd_opts.streamlocal_bind_mask = (mode_t)-1; options->fwd_opts.streamlocal_bind_unlink = -1; options->pubkey_authentication = -1; - options->challenge_response_authentication = -1; options->gss_authentication = -1; options->gss_deleg_creds = -1; options->password_authentication = -1; @@ -2262,6 +2422,9 @@ initialize_options(Options * options) options->ip_qos_interactive = -1; options->ip_qos_bulk = -1; options->request_tty = -1; + options->session_type = -1; + options->stdin_null = -1; + options->fork_after_authentication = -1; options->proxy_use_fdpass = -1; options->ignored_unknown = NULL; options->num_canonical_domains = 0; @@ -2333,9 +2496,7 @@ fill_default_options(Options * options) if (options->fwd_opts.streamlocal_bind_unlink == -1) options->fwd_opts.streamlocal_bind_unlink = 0; if (options->pubkey_authentication == -1) - options->pubkey_authentication = 1; - if (options->challenge_response_authentication == -1) - options->challenge_response_authentication = 1; + options->pubkey_authentication = SSH_PUBKEY_AUTH_ALL; if (options->gss_authentication == -1) options->gss_authentication = 0; if (options->gss_deleg_creds == -1) @@ -2371,7 +2532,6 @@ fill_default_options(Options * options) } if (options->num_identity_files == 0) { add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_RSA, 0); - add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_DSA, 0); #ifdef OPENSSL_HAS_ECC add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_ECDSA, 0); add_identity_file(options, "~/", @@ -2382,6 +2542,7 @@ fill_default_options(Options * options) add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_ED25519_SK, 0); add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_XMSS, 0); + add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_DSA, 0); ///// OQS_TEMPLATE_FRAGMENT_ADD_ID_FILES_START add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_FALCON_512, 0); add_identity_file(options, "~/", _PATH_SSH_CLIENT_ID_FALCON_1024, 0); @@ -2478,6 +2639,12 @@ fill_default_options(Options * options) options->ip_qos_bulk = IPTOS_DSCP_CS1; if (options->request_tty == -1) options->request_tty = REQUEST_TTY_AUTO; + if (options->session_type == -1) + options->session_type = SESSION_TYPE_DEFAULT; + if (options->stdin_null == -1) + options->stdin_null = 0; + if (options->fork_after_authentication == -1) + options->fork_after_authentication = 0; if (options->proxy_use_fdpass == -1) options->proxy_use_fdpass = 0; if (options->canonicalize_max_dots == -1) @@ -2545,6 +2712,15 @@ fill_default_options(Options * options) free(options->jump_host); options->jump_host = NULL; } + if (options->num_permitted_cnames == 1 && + !config_has_permitted_cnames(options)) { + /* clean up CanonicalizePermittedCNAMEs=none */ + free(options->permitted_cnames[0].source_list); + free(options->permitted_cnames[0].target_list); + memset(options->permitted_cnames, '\0', + sizeof(*options->permitted_cnames)); + options->num_permitted_cnames = 0; + } /* options->identity_agent distinguishes NULL from 'none' */ /* options->user will be set in the main program if appropriate */ /* options->hostname will be set in the main program if appropriate */ @@ -2840,7 +3016,10 @@ parse_forward(struct Forward *fwd, const char *fwdspec, int dynamicfwd, int remo if (fwd->connect_host != NULL && strlen(fwd->connect_host) >= NI_MAXHOST) goto fail_free; - /* XXX - if connecting to a remote socket, max sun len may not match this host */ + /* + * XXX - if connecting to a remote socket, max sun len may not + * match this host + */ if (fwd->connect_path != NULL && strlen(fwd->connect_path) >= PATH_MAX_SUN) goto fail_free; @@ -2875,6 +3054,12 @@ parse_jump(const char *s, Options *o, int active) active &= o->proxy_command == NULL && o->jump_host == NULL; orig = sdup = xstrdup(s); + + /* Remove comment and trailing whitespace */ + if ((cp = strchr(orig, '#')) != NULL) + *cp = '\0'; + rtrim(orig); + first = active; do { if (strcasecmp(s, "none") == 0) @@ -2983,10 +3168,14 @@ fmt_intarg(OpCodes code, int val) return fmt_multistate_int(val, multistate_tunnel); case oRequestTTY: return fmt_multistate_int(val, multistate_requesttty); + case oSessionType: + return fmt_multistate_int(val, multistate_sessiontype); case oCanonicalizeHostname: return fmt_multistate_int(val, multistate_canonicalizehostname); case oAddKeysToAgent: return fmt_multistate_int(val, multistate_yesnoaskconfirm); + case oPubkeyAuthentication: + return fmt_multistate_int(val, multistate_pubkey_auth); case oFingerprintHash: return ssh_digest_alg_name(val); default: @@ -3047,6 +3236,8 @@ dump_cfg_strarray_oneline(OpCodes code, u_int count, char **vals) u_int i; printf("%s", lookup_opcode_name(code)); + if (count == 0) + printf(" none"); for (i = 0; i < count; i++) printf(" %s", vals[i]); printf("\n"); @@ -3118,7 +3309,6 @@ dump_client_config(Options *o, const char *host) dump_cfg_fmtint(oBatchMode, o->batch_mode); dump_cfg_fmtint(oCanonicalizeFallbackLocal, o->canonicalize_fallback_local); dump_cfg_fmtint(oCanonicalizeHostname, o->canonicalize_hostname); - dump_cfg_fmtint(oChallengeResponseAuthentication, o->challenge_response_authentication); dump_cfg_fmtint(oCheckHostIP, o->check_host_ip); dump_cfg_fmtint(oCompression, o->compression); dump_cfg_fmtint(oControlMaster, o->control_master); @@ -3143,6 +3333,9 @@ dump_client_config(Options *o, const char *host) dump_cfg_fmtint(oProxyUseFdpass, o->proxy_use_fdpass); dump_cfg_fmtint(oPubkeyAuthentication, o->pubkey_authentication); dump_cfg_fmtint(oRequestTTY, o->request_tty); + dump_cfg_fmtint(oSessionType, o->session_type); + dump_cfg_fmtint(oStdinNull, o->stdin_null); + dump_cfg_fmtint(oForkAfterAuthentication, o->fork_after_authentication); dump_cfg_fmtint(oStreamLocalBindUnlink, o->fwd_opts.streamlocal_bind_unlink); dump_cfg_fmtint(oStrictHostKeyChecking, o->strict_host_key_checking); dump_cfg_fmtint(oTCPKeepAlive, o->tcp_keep_alive); @@ -3245,14 +3438,14 @@ dump_client_config(Options *o, const char *host) printf("\n"); /* oCanonicalizePermittedCNAMEs */ - if ( o->num_permitted_cnames > 0) { - printf("canonicalizePermittedcnames"); - for (i = 0; i < o->num_permitted_cnames; i++) { - printf(" %s:%s", o->permitted_cnames[i].source_list, - o->permitted_cnames[i].target_list); - } - printf("\n"); + printf("canonicalizePermittedcnames"); + if (o->num_permitted_cnames == 0) + printf(" none"); + for (i = 0; i < o->num_permitted_cnames; i++) { + printf(" %s:%s", o->permitted_cnames[i].source_list, + o->permitted_cnames[i].target_list); } + printf("\n"); /* oControlPersist */ if (o->control_persist == 0 || o->control_persist_timeout == 0) diff --git a/readconf.h b/readconf.h index 2fba866eb53..ded13c943d3 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.140 2021/02/15 20:43:15 markus Exp $ */ +/* $OpenBSD: readconf.h,v 1.146 2021/12/19 22:14:47 djm Exp $ */ /* * Author: Tatu Ylonen @@ -38,8 +38,6 @@ typedef struct { struct ForwardOptions fwd_opts; /* forwarding options */ int pubkey_authentication; /* Try ssh2 pubkey authentication. */ int hostbased_authentication; /* ssh2's rhosts_rsa */ - int challenge_response_authentication; - /* Try S/Key or TIS, authentication. */ int gss_authentication; /* Try GSS authentication */ int gss_deleg_creds; /* Delegate GSS credentials */ int password_authentication; /* Try password @@ -148,6 +146,9 @@ typedef struct { int visual_host_key; int request_tty; + int session_type; + int stdin_null; + int fork_after_authentication; int proxy_use_fdpass; @@ -178,6 +179,11 @@ typedef struct { char *ignored_unknown; /* Pattern list of unknown tokens to ignore */ } Options; +#define SSH_PUBKEY_AUTH_NO 0x00 +#define SSH_PUBKEY_AUTH_UNBOUND 0x01 +#define SSH_PUBKEY_AUTH_HBOUND 0x02 +#define SSH_PUBKEY_AUTH_ALL 0x03 + #define SSH_CANONICALISE_NO 0 #define SSH_CANONICALISE_YES 1 #define SSH_CANONICALISE_ALWAYS 2 @@ -193,6 +199,10 @@ typedef struct { #define REQUEST_TTY_YES 2 #define REQUEST_TTY_FORCE 3 +#define SESSION_TYPE_NONE 0 +#define SESSION_TYPE_SUBSYSTEM 1 +#define SESSION_TYPE_DEFAULT 2 + #define SSHCONF_CHECKPERM 1 /* check permissions on config file */ #define SSHCONF_USERCONF 2 /* user provided config file not system */ #define SSHCONF_FINAL 4 /* Final pass over config, after canon. */ @@ -223,6 +233,7 @@ int parse_jump(const char *, Options *, int); int parse_ssh_uri(const char *, char **, char **, int *); int default_ssh_port(void); int option_clear_or_none(const char *); +int config_has_permitted_cnames(Options *); void dump_client_config(Options *o, const char *host); void add_local_forward(Options *, const struct Forward *); diff --git a/readpass.c b/readpass.c index 9c7476c13f2..39af25c8872 100644 --- a/readpass.c +++ b/readpass.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readpass.c,v 1.68 2020/11/10 07:46:20 claudio Exp $ */ +/* $OpenBSD: readpass.c,v 1.69 2021/07/23 05:56:47 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -117,7 +117,7 @@ ssh_askpass(char *askpass, const char *msg, const char *env_hint) * Reads a passphrase from /dev/tty with echo turned off/on. Returns the * passphrase (allocated with xmalloc). Exits if EOF is encountered. If * RP_ALLOW_STDIN is set, the passphrase will be read from stdin if no - * tty is available + * tty is or askpass program is available */ char * read_passphrase(const char *prompt, int flags) @@ -146,7 +146,7 @@ read_passphrase(const char *prompt, int flags) use_askpass = 1; else if (flags & RP_ALLOW_STDIN) { if (!isatty(STDIN_FILENO)) { - debug("read_passphrase: stdin is not a tty"); + debug_f("stdin is not a tty"); use_askpass = 1; } } else { @@ -162,7 +162,7 @@ read_passphrase(const char *prompt, int flags) (void)write(ttyfd, &cr, 1); close(ttyfd); } else { - debug("read_passphrase: can't open %s: %s", _PATH_TTY, + debug_f("can't open %s: %s", _PATH_TTY, strerror(errno)); use_askpass = 1; } diff --git a/regress/Makefile b/regress/Makefile index 54ee3e1843c..588eb74b57a 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.110 2020/12/22 06:03:36 djm Exp $ +# $OpenBSD: Makefile,v 1.120 2022/01/06 21:46:56 dtucker Exp $ tests: prep file-tests t-exec unit @@ -21,11 +21,13 @@ distclean: clean LTESTS= connect \ proxy-connect \ + sshfp-connect \ connect-privsep \ connect-uri \ proto-version \ proto-mismatch \ exit-status \ + exit-status-signal \ envpass \ transfer \ banner \ @@ -44,10 +46,14 @@ LTESTS= connect \ agent-subprocess \ keyscan \ keygen-change \ + keygen-comment \ keygen-convert \ + keygen-knownhosts \ keygen-moduli \ + keygen-sshfp \ key-options \ scp \ + scp3 \ scp-uri \ sftp \ sftp-chroot \ @@ -84,7 +90,6 @@ LTESTS= connect \ multipubkey \ limit-keytype \ hostkey-agent \ - keygen-knownhosts \ hostkey-rotate \ principals-command \ cert-file \ @@ -93,9 +98,10 @@ LTESTS= connect \ allow-deny-users \ authinfo \ sshsig \ - keygen-comment \ - knownhosts-command - + knownhosts \ + knownhosts-command \ + agent-restrict \ + hostbased INTEROP_TESTS= putty-transfer putty-ciphers putty-kex conch-ciphers #INTEROP_TESTS+=ssh-com ssh-com-client ssh-com-keygen ssh-com-sftp @@ -115,7 +121,7 @@ CLEANFILES= *.core actual agent-key.* authorized_keys_${USERNAME} \ host.ecdsa-sha2-nistp521 host.ssh-dss host.ssh-ed25519 \ host.ssh-rsa host_ca_key* host_krl_* host_revoked_* key.* \ key.dsa-* key.ecdsa-* key.ed25519-512 \ - key.ed25519-512.pub key.rsa-* keys-command-args kh.* \ + key.ed25519-512.pub key.rsa-* keys-command-args kh.* askpass \ known_hosts known_hosts-cert known_hosts.* krl-* ls.copy \ modpipe netcat no_identity_config \ pidfile putty.rsa2 ready regress.log remote_pid \ @@ -187,13 +193,13 @@ t8: $(OBJ)/t8.out ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t8.out > /dev/null $(OBJ)/t9.out: - test "${TEST_SSH_ECC}" != yes || \ + ! ${TEST_SSH_SSH} -Q key-plain | grep ecdsa >/dev/null || \ ${TEST_SSH_SSHKEYGEN} -q -t ecdsa -N '' -f $@ t9: $(OBJ)/t9.out - test "${TEST_SSH_ECC}" != yes || \ + ! ${TEST_SSH_SSH} -Q key-plain | grep ecdsa >/dev/null || \ ${TEST_SSH_SSHKEYGEN} -lf $(OBJ)/t9.out > /dev/null - test "${TEST_SSH_ECC}" != yes || \ + ! ${TEST_SSH_SSH} -Q key-plain | grep ecdsa >/dev/null || \ ${TEST_SSH_SSHKEYGEN} -Bf $(OBJ)/t9.out > /dev/null diff --git a/regress/agent-getpeereid.sh b/regress/agent-getpeereid.sh index 524340816fd..b84471a7855 100644 --- a/regress/agent-getpeereid.sh +++ b/regress/agent-getpeereid.sh @@ -1,4 +1,4 @@ -# $OpenBSD: agent-getpeereid.sh,v 1.11 2019/11/26 23:43:10 djm Exp $ +# $OpenBSD: agent-getpeereid.sh,v 1.13 2021/09/01 00:50:27 dtucker Exp $ # Placed in the Public Domain. tid="disallow agent attach from other uid" @@ -10,19 +10,18 @@ SSH_AUTH_SOCK=/nonexistent if config_defined HAVE_GETPEEREID HAVE_GETPEERUCRED HAVE_SO_PEERCRED ; then : else - echo "skipped (not supported on this platform)" - exit 0 + skip "skipped (not supported on this platform)" +fi +if test "x$USER" = "xroot"; then + skip "skipped (running as root)" fi case "x$SUDO" in xsudo) sudo=1;; - xdoas) ;; + xdoas|xdoas\ *) ;; x) - echo "need SUDO to switch to uid $UNPRIV" - echo SKIPPED - exit 0 ;; + skip "need SUDO to switch to uid $UNPRIV" ;; *) - echo "unsupported $SUDO - "doas" and "sudo" are allowed" - exit 0 ;; + skip "unsupported $SUDO - "doas" and "sudo" are allowed" ;; esac trace "start agent" diff --git a/regress/agent-pkcs11.sh b/regress/agent-pkcs11.sh index fbbaea5186d..268a70de888 100644 --- a/regress/agent-pkcs11.sh +++ b/regress/agent-pkcs11.sh @@ -1,4 +1,4 @@ -# $OpenBSD: agent-pkcs11.sh,v 1.7 2019/11/26 23:43:10 djm Exp $ +# $OpenBSD: agent-pkcs11.sh,v 1.9 2021/07/25 12:13:03 dtucker Exp $ # Placed in the Public Domain. tid="pkcs11 agent test" @@ -62,16 +62,16 @@ notty() { trace "generating keys" RSA=${DIR}/RSA EC=${DIR}/EC -openssl genpkey -algorithm rsa > $RSA -openssl pkcs8 -nocrypt -in $RSA |\ +$OPENSSL_BIN genpkey -algorithm rsa > $RSA +$OPENSSL_BIN pkcs8 -nocrypt -in $RSA |\ softhsm2-util --slot "$slot" --label 01 --id 01 --pin "$TEST_SSH_PIN" --import /dev/stdin -openssl genpkey \ +$OPENSSL_BIN genpkey \ -genparam \ -algorithm ec \ -pkeyopt ec_paramgen_curve:prime256v1 |\ - openssl genpkey \ + $OPENSSL_BIN genpkey \ -paramfile /dev/stdin > $EC -openssl pkcs8 -nocrypt -in $EC |\ +$OPENSSL_BIN pkcs8 -nocrypt -in $EC |\ softhsm2-util --slot "$slot" --label 02 --id 02 --pin "$TEST_SSH_PIN" --import /dev/stdin trace "start agent" diff --git a/regress/agent-restrict.sh b/regress/agent-restrict.sh new file mode 100644 index 00000000000..a30aed7bf3d --- /dev/null +++ b/regress/agent-restrict.sh @@ -0,0 +1,495 @@ +# $OpenBSD: agent-restrict.sh,v 1.5 2022/01/13 04:53:16 dtucker Exp $ +# Placed in the Public Domain. + +tid="agent restrictions" + +SSH_AUTH_SOCK="$OBJ/agent.sock" +export SSH_AUTH_SOCK +rm -f $SSH_AUTH_SOCK $OBJ/agent.log $OBJ/host_[abcdex]* $OBJ/user_[abcdex]* +rm -f $OBJ/sshd_proxy_host* $OBJ/ssh_output* $OBJ/expect_* +rm -f $OBJ/ssh_proxy[._]* $OBJ/command + +verbose "generate keys" +for h in a b c d e x ca ; do + $SSHKEYGEN -q -t ed25519 -C host_$h -N '' -f $OBJ/host_$h || \ + fatal "ssh-keygen hostkey failed" + $SSHKEYGEN -q -t ed25519 -C user_$h -N '' -f $OBJ/user_$h || \ + fatal "ssh-keygen userkey failed" +done + +# Make some hostcerts +for h in d e ; do + id="host_$h" + $SSHKEYGEN -q -s $OBJ/host_ca -I $id -n $id -h $OBJ/host_${h}.pub || \ + fatal "ssh-keygen certify failed" +done + +verbose "prepare client config" +egrep -vi '(identityfile|hostname|hostkeyalias|proxycommand)' \ + $OBJ/ssh_proxy > $OBJ/ssh_proxy.bak +cat << _EOF > $OBJ/ssh_proxy +IdentitiesOnly yes +ForwardAgent yes +ExitOnForwardFailure yes +_EOF +cp $OBJ/ssh_proxy $OBJ/ssh_proxy_noid +for h in a b c d e ; do + cat << _EOF >> $OBJ/ssh_proxy +Host host_$h + Hostname host_$h + HostkeyAlias host_$h + IdentityFile $OBJ/user_$h + ProxyCommand ${SUDO} env SSH_SK_HELPER=\"$SSH_SK_HELPER\" sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy_host_$h +_EOF + # Variant with no specified keys. + cat << _EOF >> $OBJ/ssh_proxy_noid +Host host_$h + Hostname host_$h + HostkeyAlias host_$h + ProxyCommand ${SUDO} env SSH_SK_HELPER=\"$SSH_SK_HELPER\" sh ${SRC}/sshd-log-wrapper.sh ${TEST_SSHD_LOGFILE} ${SSHD} -i -f $OBJ/sshd_proxy_host_$h +_EOF +done +cat $OBJ/ssh_proxy.bak >> $OBJ/ssh_proxy +cat $OBJ/ssh_proxy.bak >> $OBJ/ssh_proxy_noid + +LC_ALL=C +export LC_ALL +echo "SetEnv LC_ALL=${LC_ALL}" >> sshd_proxy + +verbose "prepare known_hosts" +rm -f $OBJ/known_hosts +for h in a b c x ; do + (printf "host_$h " ; cat $OBJ/host_${h}.pub) >> $OBJ/known_hosts +done +(printf "@cert-authority host_* " ; cat $OBJ/host_ca.pub) >> $OBJ/known_hosts + +verbose "prepare server configs" +egrep -vi '(hostkey|pidfile)' $OBJ/sshd_proxy \ + > $OBJ/sshd_proxy.bak +for h in a b c d e; do + cp $OBJ/sshd_proxy.bak $OBJ/sshd_proxy_host_$h + cat << _EOF >> $OBJ/sshd_proxy_host_$h +ExposeAuthInfo yes +PidFile none +Hostkey $OBJ/host_$h +_EOF +done +for h in d e ; do + echo "HostCertificate $OBJ/host_${h}-cert.pub" \ + >> $OBJ/sshd_proxy_host_$h +done +# Create authorized_keys with canned command. +reset_keys() { + _whichcmd="$1" + _command="" + case "$_whichcmd" in + authinfo) _command="cat \$SSH_USER_AUTH" ;; + keylist) _command="$SSHADD -L | cut -d' ' -f-2 | sort" ;; + *) fatal "unsupported command $_whichcmd" ;; + esac + trace "reset keys" + >$OBJ/authorized_keys_$USER + for h in e d c b a; do + (printf "%s" "restrict,agent-forwarding,command=\"$_command\" "; + cat $OBJ/user_$h.pub) >> $OBJ/authorized_keys_$USER + done +} +# Prepare a key for comparison with ExposeAuthInfo/$SSH_USER_AUTH. +expect_key() { + _key="$OBJ/${1}.pub" + _file="$OBJ/$2" + (printf "publickey " ; cut -d' ' -f-2 $_key) > $_file +} +# Prepare expect_* files to compare against authinfo forced command to ensure +# keys used for authentication match. +reset_expect_keys() { + for u in a b c d e; do + expect_key user_$u expect_$u + done +} +# ssh to host, expecting success and that output matched expectation for +# that host (expect_$h file). +expect_succeed() { + _id="$1" + _case="$2" + shift; shift; _extra="$@" + _host="host_$_id" + trace "connect $_host expect success" + rm -f $OBJ/ssh_output + ${SSH} $_extra -F $OBJ/ssh_proxy $_host true > $OBJ/ssh_output + _s=$? + test $_s -eq 0 || fail "host $_host $_case fail, exit status $_s" + diff $OBJ/ssh_output $OBJ/expect_${_id} || + fail "unexpected ssh output" +} +# ssh to host using explicit key, expecting success and that the key was +# actually used for authentication. +expect_succeed_key() { + _id="$1" + _key="$2" + _case="$3" + shift; shift; shift; _extra="$@" + _host="host_$_id" + trace "connect $_host expect success, with key $_key" + _keyfile="$OBJ/$_key" + rm -f $OBJ/ssh_output + ${SSH} $_extra -F $OBJ/ssh_proxy_noid \ + -oIdentityFile=$_keyfile $_host true > $OBJ/ssh_output + _s=$? + test $_s -eq 0 || fail "host $_host $_key $_case fail, exit status $_s" + expect_key $_key expect_key + diff $OBJ/ssh_output $OBJ/expect_key || + fail "incorrect key used for authentication" +} +# ssh to a host, expecting it to fail. +expect_fail() { + _host="$1" + _case="$2" + shift; shift; _extra="$@" + trace "connect $_host expect failure" + ${SSH} $_extra -F $OBJ/ssh_proxy $_host true >/dev/null && \ + fail "host $_host $_case succeeded unexpectedly" +} +# ssh to a host using an explicit key, expecting it to fail. +expect_fail_key() { + _id="$1" + _key="$2" + _case="$3" + shift; shift; shift; _extra="$@" + _host="host_$_id" + trace "connect $_host expect failure, with key $_key" + _keyfile="$OBJ/$_key" + ${SSH} $_extra -F $OBJ/ssh_proxy_noid -oIdentityFile=$_keyfile \ + $_host true > $OBJ/ssh_output && \ + fail "host $_host $_key $_case succeeded unexpectedly" +} +# Move the private key files out of the way to force use of agent-hosted keys. +hide_privatekeys() { + trace "hide private keys" + for u in a b c d e x; do + mv $OBJ/user_$u $OBJ/user_x$u || fatal "hide privkey $u" + done +} +# Put the private key files back. +restore_privatekeys() { + trace "restore private keys" + for u in a b c d e x; do + mv $OBJ/user_x$u $OBJ/user_$u || fatal "restore privkey $u" + done +} +clear_agent() { + ${SSHADD} -D > /dev/null 2>&1 || fatal "clear agent failed" +} + +reset_keys authinfo +reset_expect_keys + +verbose "authentication w/o agent" +for h in a b c d e ; do + expect_succeed $h "w/o agent" + wrongkey=user_e + test "$h" = "e" && wrongkey=user_a + expect_succeed_key $h $wrongkey "\"wrong\" key w/o agent" +done +hide_privatekeys +for h in a b c d e ; do + expect_fail $h "w/o agent" +done +restore_privatekeys + +verbose "start agent" +${SSHAGENT} ${EXTRA_AGENT_ARGS} -d -a $SSH_AUTH_SOCK > $OBJ/agent.log 2>&1 & +AGENT_PID=$! +trap "kill $AGENT_PID" EXIT +sleep 4 # Give it a chance to start +# Check that it's running. +${SSHADD} -l > /dev/null 2>&1 +if [ $? -ne 1 ]; then + fail "ssh-add -l did not fail with exit code 1" +fi + +verbose "authentication with agent (no restrict)" +for u in a b c d e x; do + $SSHADD -q $OBJ/user_$u || fatal "add key $u unrestricted" +done +hide_privatekeys +for h in a b c d e ; do + expect_succeed $h "with agent" + wrongkey=user_e + test "$h" = "e" && wrongkey=user_a + expect_succeed_key $h $wrongkey "\"wrong\" key with agent" +done + +verbose "unrestricted keylist" +reset_keys keylist +rm -f $OBJ/expect_list.pre +# List of keys from agent should contain everything. +for u in a b c d e x; do + cut -d " " -f-2 $OBJ/user_${u}.pub >> $OBJ/expect_list.pre +done +sort $OBJ/expect_list.pre > $OBJ/expect_list +for h in a b c d e; do + cp $OBJ/expect_list $OBJ/expect_$h + expect_succeed $h "unrestricted keylist" +done +restore_privatekeys + +verbose "authentication with agent (basic restrict)" +reset_keys authinfo +reset_expect_keys +for h in a b c d e; do + $SSHADD -h host_$h -H $OBJ/known_hosts -q $OBJ/user_$h \ + || fatal "add key $u basic restrict" +done +# One more, unrestricted +$SSHADD -q $OBJ/user_x || fatal "add unrestricted key" +hide_privatekeys +# Authentication to host with expected key should work. +for h in a b c d e ; do + expect_succeed $h "with agent" +done +# Authentication to host with incorrect key should fail. +verbose "authentication with agent incorrect key (basic restrict)" +for h in a b c d e ; do + wrongkey=user_e + test "$h" = "e" && wrongkey=user_a + expect_fail_key $h $wrongkey "wrong key with agent (basic restrict)" +done + +verbose "keylist (basic restrict)" +reset_keys keylist +# List from forwarded agent should contain only user_x - the unrestricted key. +cut -d " " -f-2 $OBJ/user_x.pub > $OBJ/expect_list +for h in a b c d e; do + cp $OBJ/expect_list $OBJ/expect_$h + expect_succeed $h "keylist (basic restrict)" +done +restore_privatekeys + +verbose "username" +reset_keys authinfo +reset_expect_keys +for h in a b c d e; do + $SSHADD -h "${USER}@host_$h" -H $OBJ/known_hosts -q $OBJ/user_$h \ + || fatal "add key $u basic restrict" +done +hide_privatekeys +for h in a b c d e ; do + expect_succeed $h "wildcard user" +done +restore_privatekeys + +verbose "username wildcard" +reset_keys authinfo +reset_expect_keys +for h in a b c d e; do + $SSHADD -h "*@host_$h" -H $OBJ/known_hosts -q $OBJ/user_$h \ + || fatal "add key $u basic restrict" +done +hide_privatekeys +for h in a b c d e ; do + expect_succeed $h "wildcard user" +done +restore_privatekeys + +verbose "username incorrect" +reset_keys authinfo +reset_expect_keys +for h in a b c d e; do + $SSHADD -h "--BADUSER@host_$h" -H $OBJ/known_hosts -q $OBJ/user_$h \ + || fatal "add key $u basic restrict" +done +hide_privatekeys +for h in a b c d e ; do + expect_fail $h "incorrect user" +done +restore_privatekeys + + +verbose "agent restriction honours certificate principal" +reset_keys authinfo +reset_expect_keys +clear_agent +$SSHADD -h host_e -H $OBJ/known_hosts -q $OBJ/user_d || fatal "add key" +hide_privatekeys +expect_fail d "restricted agent w/ incorrect cert principal" +restore_privatekeys + +# Prepares the script used to drive chained ssh connections for the +# multihop tests. Believe me, this is easier than getting the escaping +# right for 5 hops on the command-line... +prepare_multihop_script() { + MULTIHOP_RUN=$OBJ/command + cat << _EOF > $MULTIHOP_RUN +#!/bin/sh +#set -x +me="\$1" ; shift +next="\$1" +if test ! -z "\$me" ; then + rm -f $OBJ/done + echo "HOSTNAME host_\$me" + echo "AUTHINFO" + cat \$SSH_USER_AUTH +fi +echo AGENT +$SSHADD -L | egrep "^ssh" | cut -d" " -f-2 | sort +if test -z "\$next" ; then + touch $OBJ/done + echo "FINISH" + e=0 +else + echo NEXT + ${SSH} -F $OBJ/ssh_proxy_noid -oIdentityFile=$OBJ/user_a \ + host_\$next $MULTIHOP_RUN "\$@" + e=\$? +fi +echo "COMPLETE \"\$me\"" +if test ! -z "\$me" ; then + if test ! -f $OBJ/done ; then + echo "DONE MARKER MISSING" + test \$e -eq 0 && e=63 + fi +fi +exit \$e +_EOF + chmod u+x $MULTIHOP_RUN +} + +# Prepare expected output for multihop tests at expect_a +prepare_multihop_expected() { + _keys="$1" + _hops="a b c d e" + test -z "$2" || _hops="$2" + _revhops=$(echo "$_hops" | rev) + _lasthop=$(echo "$_hops" | sed 's/.* //') + + rm -f $OBJ/expect_keys + for h in a b c d e; do + cut -d" " -f-2 $OBJ/user_${h}.pub >> $OBJ/expect_keys + done + rm -f $OBJ/expect_a + echo "AGENT" >> $OBJ/expect_a + test "x$_keys" = "xnone" || sort $OBJ/expect_keys >> $OBJ/expect_a + echo "NEXT" >> $OBJ/expect_a + for h in $_hops ; do + echo "HOSTNAME host_$h" >> $OBJ/expect_a + echo "AUTHINFO" >> $OBJ/expect_a + (printf "publickey " ; cut -d" " -f-2 $OBJ/user_a.pub) >> $OBJ/expect_a + echo "AGENT" >> $OBJ/expect_a + if test "x$_keys" = "xall" ; then + sort $OBJ/expect_keys >> $OBJ/expect_a + fi + if test "x$h" != "x$_lasthop" ; then + if test "x$_keys" = "xfiltered" ; then + cut -d" " -f-2 $OBJ/user_a.pub >> $OBJ/expect_a + fi + echo "NEXT" >> $OBJ/expect_a + fi + done + echo "FINISH" >> $OBJ/expect_a + for h in $_revhops "" ; do + echo "COMPLETE \"$h\"" >> $OBJ/expect_a + done +} + +prepare_multihop_script +cp $OBJ/user_a.pub $OBJ/authorized_keys_$USER # only one key used. + +verbose "multihop without agent" +clear_agent +prepare_multihop_expected none +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output || fail "multihop no agent ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" + +verbose "multihop agent unrestricted" +clear_agent +$SSHADD -q $OBJ/user_[abcde] +prepare_multihop_expected all +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output || fail "multihop no agent ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" + +verbose "multihop restricted" +clear_agent +prepare_multihop_expected filtered +# Add user_a, with permission to connect through the whole chain. +$SSHADD -h host_a -h "host_a>host_b" -h "host_b>host_c" \ + -h "host_c>host_d" -h "host_d>host_e" \ + -H $OBJ/known_hosts -q $OBJ/user_a \ + || fatal "add key user_a multihop" +# Add the other keys, bound to a unused host. +$SSHADD -q -h host_x -H $OBJ/known_hosts $OBJ/user_[bcde] || fail "add keys" +hide_privatekeys +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output || fail "multihop ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" +restore_privatekeys + +verbose "multihop username" +$SSHADD -h host_a -h "host_a>${USER}@host_b" -h "host_b>${USER}@host_c" \ + -h "host_c>${USER}@host_d" -h "host_d>${USER}@host_e" \ + -H $OBJ/known_hosts -q $OBJ/user_a || fatal "add key user_a multihop" +hide_privatekeys +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output || fail "multihop w/ user ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" +restore_privatekeys + +verbose "multihop wildcard username" +$SSHADD -h host_a -h "host_a>*@host_b" -h "host_b>*@host_c" \ + -h "host_c>*@host_d" -h "host_d>*@host_e" \ + -H $OBJ/known_hosts -q $OBJ/user_a || fatal "add key user_a multihop" +hide_privatekeys +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output || fail "multihop w/ user ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" +restore_privatekeys + +verbose "multihop wrong username" +$SSHADD -h host_a -h "host_a>*@host_b" -h "host_b>*@host_c" \ + -h "host_c>--BADUSER@host_d" -h "host_d>*@host_e" \ + -H $OBJ/known_hosts -q $OBJ/user_a || fatal "add key user_a multihop" +hide_privatekeys +$MULTIHOP_RUN "" a b c d e > $OBJ/ssh_output && \ + fail "multihop with wrong user succeeded unexpectedly" +restore_privatekeys + +verbose "multihop cycle no agent" +clear_agent +prepare_multihop_expected none "a b a a c d e" +$MULTIHOP_RUN "" a b a a c d e > $OBJ/ssh_output || \ + fail "multihop cycle no-agent fail" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" + +verbose "multihop cycle agent unrestricted" +clear_agent +$SSHADD -q $OBJ/user_[abcde] || fail "add keys" +prepare_multihop_expected all "a b a a c d e" +$MULTIHOP_RUN "" a b a a c d e > $OBJ/ssh_output || \ + fail "multihop cycle agent ssh failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" + +verbose "multihop cycle restricted deny" +clear_agent +$SSHADD -q -h host_x -H $OBJ/known_hosts $OBJ/user_[bcde] || fail "add keys" +$SSHADD -h host_a -h "host_a>host_b" -h "host_b>host_c" \ + -h "host_c>host_d" -h "host_d>host_e" \ + -H $OBJ/known_hosts -q $OBJ/user_a \ + || fatal "add key user_a multihop" +prepare_multihop_expected filtered "a b a a c d e" +hide_privatekeys +$MULTIHOP_RUN "" a b a a c d e > $OBJ/ssh_output && \ + fail "multihop cycle restricted deny succeded unexpectedly" +restore_privatekeys + +verbose "multihop cycle restricted allow" +clear_agent +$SSHADD -q -h host_x -H $OBJ/known_hosts $OBJ/user_[bcde] || fail "add keys" +$SSHADD -h host_a -h "host_a>host_b" -h "host_b>host_c" \ + -h "host_c>host_d" -h "host_d>host_e" \ + -h "host_b>host_a" -h "host_a>host_a" -h "host_a>host_c" \ + -H $OBJ/known_hosts -q $OBJ/user_a \ + || fatal "add key user_a multihop" +prepare_multihop_expected filtered "a b a a c d e" +hide_privatekeys +$MULTIHOP_RUN "" a b a a c d e > $OBJ/ssh_output || \ + fail "multihop cycle restricted allow failed" +diff $OBJ/ssh_output $OBJ/expect_a || fail "unexpected ssh output" +restore_privatekeys + diff --git a/regress/allow-deny-users.sh b/regress/allow-deny-users.sh index 5c389512247..6c053eef088 100644 --- a/regress/allow-deny-users.sh +++ b/regress/allow-deny-users.sh @@ -1,6 +1,6 @@ # Public Domain # Zev Weiss, 2016 -# $OpenBSD: allow-deny-users.sh,v 1.5 2018/07/13 02:13:50 djm Exp $ +# $OpenBSD: allow-deny-users.sh,v 1.6 2021/06/07 00:00:50 djm Exp $ tid="AllowUsers/DenyUsers" @@ -20,10 +20,8 @@ test_auth() failmsg="$4" cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy - echo DenyUsers="$deny" >> $OBJ/sshd_proxy - echo AllowUsers="$allow" >> $OBJ/sshd_proxy - - start_sshd -oDenyUsers="$deny" -oAllowUsers="$allow" + test -z "$deny" || echo DenyUsers="$deny" >> $OBJ/sshd_proxy + test -z "$allow" || echo AllowUsers="$allow" >> $OBJ/sshd_proxy ${SSH} -F $OBJ/ssh_proxy "$me@somehost" true status=$? diff --git a/regress/banner.sh b/regress/banner.sh index 0d9654fe247..a84feb5ad7c 100644 --- a/regress/banner.sh +++ b/regress/banner.sh @@ -1,4 +1,4 @@ -# $OpenBSD: banner.sh,v 1.3 2017/04/30 23:34:55 djm Exp $ +# $OpenBSD: banner.sh,v 1.4 2021/08/08 06:38:33 dtucker Exp $ # Placed in the Public Domain. tid="banner" @@ -37,7 +37,9 @@ done trace "test suppress banner (-q)" verbose "test $tid: suppress banner (-q)" -( ${SSH} -q -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \ +# ssh-log-wrapper drops "-q" to preserve debug output so use ssh directly +# for just this test. +( ${REAL_SSH} -q -F $OBJ/ssh_proxy otherhost true 2>$OBJ/banner.out && \ cmp $OBJ/empty.in $OBJ/banner.out ) || \ fail "suppress banner (-q)" diff --git a/regress/cert-hostkey.sh b/regress/cert-hostkey.sh index ebf6c903925..a3414e1a5c5 100644 --- a/regress/cert-hostkey.sh +++ b/regress/cert-hostkey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cert-hostkey.sh,v 1.24 2021/02/25 03:27:34 djm Exp $ +# $OpenBSD: cert-hostkey.sh,v 1.27 2021/09/30 05:26:26 dtucker Exp $ # Placed in the Public Domain. tid="certified host keys" @@ -131,35 +131,32 @@ attempt_connect() { } # Basic connect and revocation tests. -for privsep in yes ; do - for ktype in $PLAIN_TYPES ; do - verbose "$tid: host ${ktype} cert connect privsep $privsep" - ( - cat $OBJ/sshd_proxy_bak - echo HostKey $OBJ/cert_host_key_${ktype} - echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub - echo UsePrivilegeSeparation $privsep - ) > $OBJ/sshd_proxy +for ktype in $PLAIN_TYPES ; do + verbose "$tid: host ${ktype} cert connect" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + ) > $OBJ/sshd_proxy - # test name expect success - attempt_connect "$ktype basic connect" "yes" - attempt_connect "$ktype empty KRL" "yes" \ - -oRevokedHostKeys=$OBJ/host_krl_empty - attempt_connect "$ktype KRL w/ plain key revoked" "no" \ - -oRevokedHostKeys=$OBJ/host_krl_plain - attempt_connect "$ktype KRL w/ cert revoked" "no" \ - -oRevokedHostKeys=$OBJ/host_krl_cert - attempt_connect "$ktype KRL w/ CA revoked" "no" \ - -oRevokedHostKeys=$OBJ/host_krl_ca - attempt_connect "$ktype empty plaintext revocation" "yes" \ - -oRevokedHostKeys=$OBJ/host_revoked_empty - attempt_connect "$ktype plain key plaintext revocation" "no" \ - -oRevokedHostKeys=$OBJ/host_revoked_plain - attempt_connect "$ktype cert plaintext revocation" "no" \ - -oRevokedHostKeys=$OBJ/host_revoked_cert - attempt_connect "$ktype CA plaintext revocation" "no" \ - -oRevokedHostKeys=$OBJ/host_revoked_ca - done + # test name expect success + attempt_connect "$ktype basic connect" "yes" + attempt_connect "$ktype empty KRL" "yes" \ + -oRevokedHostKeys=$OBJ/host_krl_empty + attempt_connect "$ktype KRL w/ plain key revoked" "no" \ + -oRevokedHostKeys=$OBJ/host_krl_plain + attempt_connect "$ktype KRL w/ cert revoked" "no" \ + -oRevokedHostKeys=$OBJ/host_krl_cert + attempt_connect "$ktype KRL w/ CA revoked" "no" \ + -oRevokedHostKeys=$OBJ/host_krl_ca + attempt_connect "$ktype empty plaintext revocation" "yes" \ + -oRevokedHostKeys=$OBJ/host_revoked_empty + attempt_connect "$ktype plain key plaintext revocation" "no" \ + -oRevokedHostKeys=$OBJ/host_revoked_plain + attempt_connect "$ktype cert plaintext revocation" "no" \ + -oRevokedHostKeys=$OBJ/host_revoked_cert + attempt_connect "$ktype CA plaintext revocation" "no" \ + -oRevokedHostKeys=$OBJ/host_revoked_ca done # Revoked certificates with key present @@ -169,24 +166,21 @@ for ktype in $PLAIN_TYPES ; do kh_revoke cert_host_key_${ktype}.pub >> $OBJ/known_hosts-cert.orig done cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert -for privsep in yes ; do - for ktype in $PLAIN_TYPES ; do - verbose "$tid: host ${ktype} revoked cert privsep $privsep" - ( - cat $OBJ/sshd_proxy_bak - echo HostKey $OBJ/cert_host_key_${ktype} - echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub - echo UsePrivilegeSeparation $privsep - ) > $OBJ/sshd_proxy +for ktype in $PLAIN_TYPES ; do + verbose "$tid: host ${ktype} revoked cert" + ( + cat $OBJ/sshd_proxy_bak + echo HostKey $OBJ/cert_host_key_${ktype} + echo HostCertificate $OBJ/cert_host_key_${ktype}-cert.pub + ) > $OBJ/sshd_proxy - cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert - ${SSH} -oUserKnownHostsFile=$OBJ/known_hosts-cert \ - -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - done + cp $OBJ/known_hosts-cert.orig $OBJ/known_hosts-cert + ${SSH} -oUserKnownHostsFile=$OBJ/known_hosts-cert \ + -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi done # Revoked CA @@ -283,11 +277,17 @@ for ktype in $PLAIN_TYPES ; do ) > $OBJ/sshd_proxy ${SSH} -oUserKnownHostsFile=$OBJ/known_hosts-cert \ - -oGlobalKnownHostsFile=$OBJ/known_hosts-cert \ - -F $OBJ/ssh_proxy somehost true + -oGlobalKnownHostsFile=none -F $OBJ/ssh_proxy somehost true if [ $? -ne 0 ]; then fail "ssh cert connect failed" fi + # Also check that it works when the known_hosts file is not in the + # first array position. + ${SSH} -oUserKnownHostsFile="/dev/null $OBJ/known_hosts-cert" \ + -oGlobalKnownHostsFile=none -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "ssh cert connect failed known_hosts 2nd" + fi done # Wrong certificate diff --git a/regress/cert-userkey.sh b/regress/cert-userkey.sh index baa6903ea26..4ea29b7cdbb 100644 --- a/regress/cert-userkey.sh +++ b/regress/cert-userkey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cert-userkey.sh,v 1.26 2021/02/25 03:27:34 djm Exp $ +# $OpenBSD: cert-userkey.sh,v 1.28 2021/09/30 05:26:26 dtucker Exp $ # Placed in the Public Domain. tid="certified user keys" @@ -60,126 +60,122 @@ done # Test explicitly-specified principals for ktype in $EXTRA_TYPES $PLAIN_TYPES ; do t=$(kname $ktype) - for privsep in yes ; do - _prefix="${ktype} privsep $privsep" + _prefix="${ktype}" - # Setup for AuthorizedPrincipalsFile - rm -f $OBJ/authorized_keys_$USER - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - echo "AuthorizedPrincipalsFile " \ - "$OBJ/authorized_principals_%u" - echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" - echo "PubkeyAcceptedAlgorithms ${t}" - ) > $OBJ/sshd_proxy - ( - cat $OBJ/ssh_proxy_bak - echo "PubkeyAcceptedAlgorithms ${t}" - ) > $OBJ/ssh_proxy + # Setup for AuthorizedPrincipalsFile + rm -f $OBJ/authorized_keys_$USER + ( + cat $OBJ/sshd_proxy_bak + echo "AuthorizedPrincipalsFile " \ + "$OBJ/authorized_principals_%u" + echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" + echo "PubkeyAcceptedAlgorithms ${t}" + ) > $OBJ/sshd_proxy + ( + cat $OBJ/ssh_proxy_bak + echo "PubkeyAcceptedAlgorithms ${t}" + ) > $OBJ/ssh_proxy - # Missing authorized_principals - verbose "$tid: ${_prefix} missing authorized_principals" - rm -f $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # Missing authorized_principals + verbose "$tid: ${_prefix} missing authorized_principals" + rm -f $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # Empty authorized_principals - verbose "$tid: ${_prefix} empty authorized_principals" - echo > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # Empty authorized_principals + verbose "$tid: ${_prefix} empty authorized_principals" + echo > $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # Wrong authorized_principals - verbose "$tid: ${_prefix} wrong authorized_principals" - echo gregorsamsa > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # Wrong authorized_principals + verbose "$tid: ${_prefix} wrong authorized_principals" + echo gregorsamsa > $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # Correct authorized_principals - verbose "$tid: ${_prefix} correct authorized_principals" - echo mekmitasdigoat > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi + # Correct authorized_principals + verbose "$tid: ${_prefix} correct authorized_principals" + echo mekmitasdigoat > $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi - # authorized_principals with bad key option - verbose "$tid: ${_prefix} authorized_principals bad key opt" - echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # authorized_principals with bad key option + verbose "$tid: ${_prefix} authorized_principals bad key opt" + echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # authorized_principals with command=false - verbose "$tid: ${_prefix} authorized_principals command=false" - echo 'command="false" mekmitasdigoat' > \ - $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # authorized_principals with command=false + verbose "$tid: ${_prefix} authorized_principals command=false" + echo 'command="false" mekmitasdigoat' > \ + $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # authorized_principals with command=true - verbose "$tid: ${_prefix} authorized_principals command=true" - echo 'command="true" mekmitasdigoat' > \ - $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi + # authorized_principals with command=true + verbose "$tid: ${_prefix} authorized_principals command=true" + echo 'command="true" mekmitasdigoat' > \ + $OBJ/authorized_principals_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi - # Setup for principals= key option - rm -f $OBJ/authorized_principals_$USER - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - echo "PubkeyAcceptedAlgorithms ${t}" - ) > $OBJ/sshd_proxy - ( - cat $OBJ/ssh_proxy_bak - echo "PubkeyAcceptedAlgorithms ${t}" - ) > $OBJ/ssh_proxy + # Setup for principals= key option + rm -f $OBJ/authorized_principals_$USER + ( + cat $OBJ/sshd_proxy_bak + echo "PubkeyAcceptedAlgorithms ${t}" + ) > $OBJ/sshd_proxy + ( + cat $OBJ/ssh_proxy_bak + echo "PubkeyAcceptedAlgorithms ${t}" + ) > $OBJ/ssh_proxy - # Wrong principals list - verbose "$tid: ${_prefix} wrong principals key option" - ( - printf 'cert-authority,principals="gregorsamsa" ' - cat $OBJ/user_ca_key.pub - ) > $OBJ/authorized_keys_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi + # Wrong principals list + verbose "$tid: ${_prefix} wrong principals key option" + ( + printf 'cert-authority,principals="gregorsamsa" ' + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" + fi - # Correct principals list - verbose "$tid: ${_prefix} correct principals key option" - ( - printf 'cert-authority,principals="mekmitasdigoat" ' - cat $OBJ/user_ca_key.pub - ) > $OBJ/authorized_keys_$USER - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi - done + # Correct principals list + verbose "$tid: ${_prefix} correct principals key option" + ( + printf 'cert-authority,principals="mekmitasdigoat" ' + cat $OBJ/user_ca_key.pub + ) > $OBJ/authorized_keys_$USER + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi done basic_tests() { @@ -197,76 +193,72 @@ basic_tests() { for ktype in $PLAIN_TYPES ; do t=$(kname $ktype) - for privsep in yes ; do - _prefix="${ktype} privsep $privsep $auth" - # Simple connect - verbose "$tid: ${_prefix} connect" - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - echo "PubkeyAcceptedAlgorithms ${t}" - echo "$extra_sshd" - ) > $OBJ/sshd_proxy - ( - cat $OBJ/ssh_proxy_bak - echo "PubkeyAcceptedAlgorithms ${t}" - ) > $OBJ/ssh_proxy - - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi + _prefix="${ktype} $auth" + # Simple connect + verbose "$tid: ${_prefix} connect" + ( + cat $OBJ/sshd_proxy_bak + echo "PubkeyAcceptedAlgorithms ${t}" + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + ( + cat $OBJ/ssh_proxy_bak + echo "PubkeyAcceptedAlgorithms ${t}" + ) > $OBJ/ssh_proxy - # Revoked keys - verbose "$tid: ${_prefix} revoked key" - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - echo "RevokedKeys $OBJ/cert_user_key_revoked" - echo "PubkeyAcceptedAlgorithms ${t}" - echo "$extra_sshd" - ) > $OBJ/sshd_proxy - cp $OBJ/cert_user_key_${ktype}.pub \ - $OBJ/cert_user_key_revoked - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpecedly" - fi - verbose "$tid: ${_prefix} revoked via KRL" - rm $OBJ/cert_user_key_revoked - ${SSHKEYGEN} -kqf $OBJ/cert_user_key_revoked \ - $OBJ/cert_user_key_${ktype}.pub - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpecedly" - fi - verbose "$tid: ${_prefix} empty KRL" - ${SSHKEYGEN} -kqf $OBJ/cert_user_key_revoked - ${SSH} -i $OBJ/cert_user_key_${ktype} \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi - done + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi - # Revoked CA - verbose "$tid: ${ktype} $auth revoked CA key" + # Revoked keys + verbose "$tid: ${_prefix} revoked key" ( cat $OBJ/sshd_proxy_bak - echo "RevokedKeys $OBJ/user_ca_key.pub" + echo "RevokedKeys $OBJ/cert_user_key_revoked" echo "PubkeyAcceptedAlgorithms ${t}" echo "$extra_sshd" ) > $OBJ/sshd_proxy - ${SSH} -i $OBJ/cert_user_key_${ktype} -F $OBJ/ssh_proxy \ - somehost true >/dev/null 2>&1 + cp $OBJ/cert_user_key_${ktype}.pub \ + $OBJ/cert_user_key_revoked + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpecedly" + fi + verbose "$tid: ${_prefix} revoked via KRL" + rm $OBJ/cert_user_key_revoked + ${SSHKEYGEN} -kqf $OBJ/cert_user_key_revoked \ + $OBJ/cert_user_key_${ktype}.pub + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 if [ $? -eq 0 ]; then fail "ssh cert connect succeeded unexpecedly" fi + verbose "$tid: ${_prefix} empty KRL" + ${SSHKEYGEN} -kqf $OBJ/cert_user_key_revoked + ${SSH} -i $OBJ/cert_user_key_${ktype} \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 + if [ $? -ne 0 ]; then + fail "ssh cert connect failed" + fi done + # Revoked CA + verbose "$tid: ${ktype} $auth revoked CA key" + ( + cat $OBJ/sshd_proxy_bak + echo "RevokedKeys $OBJ/user_ca_key.pub" + echo "PubkeyAcceptedAlgorithms ${t}" + echo "$extra_sshd" + ) > $OBJ/sshd_proxy + ${SSH} -i $OBJ/cert_user_key_${ktype} -F $OBJ/ssh_proxy \ + somehost true >/dev/null 2>&1 + if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpecedly" + fi + verbose "$tid: $auth CA does not authenticate" ( cat $OBJ/sshd_proxy_bak diff --git a/regress/cfginclude.sh b/regress/cfginclude.sh index 2fc39ce45b8..f5b492f1786 100644 --- a/regress/cfginclude.sh +++ b/regress/cfginclude.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cfginclude.sh,v 1.2 2016/05/03 15:30:46 dtucker Exp $ +# $OpenBSD: cfginclude.sh,v 1.3 2021/06/08 06:52:43 djm Exp $ # Placed in the Public Domain. tid="config include" @@ -10,7 +10,7 @@ cat > $OBJ/ssh_config.i << _EOF Match host a Hostname aa -Match host b +Match host b # comment Hostname bb Include $OBJ/ssh_config.i.* @@ -19,10 +19,10 @@ Match host c Hostname cc Match host m - Include $OBJ/ssh_config.i.* + Include $OBJ/ssh_config.i.* # comment Host d - Hostname dd + Hostname dd # comment Host e Hostname ee @@ -47,17 +47,17 @@ Match host a Match host b Hostname bbb -Match host c +Match host c # comment Hostname ccc -Host d +Host d # comment Hostname ddd Host e Hostname eee Host f - Hostname fff + Hostname fff # comment _EOF cat > $OBJ/ssh_config.i.2 << _EOF @@ -142,7 +142,7 @@ trial a aa # cleanup rm -f $OBJ/ssh_config.i $OBJ/ssh_config.i.* $OBJ/ssh_config.out -# $OpenBSD: cfginclude.sh,v 1.2 2016/05/03 15:30:46 dtucker Exp $ +# $OpenBSD: cfginclude.sh,v 1.3 2021/06/08 06:52:43 djm Exp $ # Placed in the Public Domain. tid="config include" @@ -185,11 +185,11 @@ cat > $OBJ/ssh_config.i.1 << _EOF Match host a Hostname aaa -Match host b +Match host b # comment Hostname bbb Match host c - Hostname ccc + Hostname ccc # comment Host d Hostname ddd @@ -220,8 +220,8 @@ Host e Host f Hostname ffff -Match all - Hostname xxxx +Match all # comment + Hostname xxxx # comment _EOF trial() { diff --git a/regress/cfgmatch.sh b/regress/cfgmatch.sh index 6620c84ed98..05a6668551a 100644 --- a/regress/cfgmatch.sh +++ b/regress/cfgmatch.sh @@ -1,4 +1,4 @@ -# $OpenBSD: cfgmatch.sh,v 1.12 2019/04/18 18:57:16 dtucker Exp $ +# $OpenBSD: cfgmatch.sh,v 1.13 2021/06/08 06:52:43 djm Exp $ # Placed in the Public Domain. tid="sshd_config match" @@ -39,16 +39,16 @@ stop_client() } cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak -echo "PermitOpen 127.0.0.1:1" >>$OBJ/sshd_config +echo "PermitOpen 127.0.0.1:1 # comment" >>$OBJ/sshd_config echo "Match Address 127.0.0.1" >>$OBJ/sshd_config echo "PermitOpen 127.0.0.1:2 127.0.0.1:3 127.0.0.1:$PORT" >>$OBJ/sshd_config grep -v AuthorizedKeysFile $OBJ/sshd_proxy_bak > $OBJ/sshd_proxy -echo "AuthorizedKeysFile /dev/null" >>$OBJ/sshd_proxy +echo "AuthorizedKeysFile /dev/null # comment" >>$OBJ/sshd_proxy echo "PermitOpen 127.0.0.1:1" >>$OBJ/sshd_proxy echo "Match user $USER" >>$OBJ/sshd_proxy echo "AuthorizedKeysFile /dev/null $OBJ/authorized_keys_%u" >>$OBJ/sshd_proxy -echo "Match Address 127.0.0.1" >>$OBJ/sshd_proxy +echo "Match Address 127.0.0.1 # comment" >>$OBJ/sshd_proxy echo "PermitOpen 127.0.0.1:2 127.0.0.1:3 127.0.0.1:$PORT" >>$OBJ/sshd_proxy ${SUDO} ${SSHD} -f $OBJ/sshd_config -T >/dev/null || \ diff --git a/regress/cipher-speed.sh b/regress/cipher-speed.sh index 5da95b3a9e7..1340bd15987 100644 --- a/regress/cipher-speed.sh +++ b/regress/cipher-speed.sh @@ -3,6 +3,16 @@ tid="cipher speed" +# Enable all supported ciphers and macs. +ciphers=`${SSH} -Q Ciphers | tr '\n' , | sed 's/,$//'` +macs=`${SSH} -Q MACs | tr '\n' , | sed 's/,$//'` +cat >>$OBJ/sshd_proxy <'$OBJ'/remote_pid; sleep 444' & +ssh_pid=$! + +# wait for it to start +n=20 +while [ ! -f $OBJ/remote_pid ] && [ $n -gt 0 ]; do + n=$(($n - 1)) + sleep 1 +done + +kill $ssh_pid +wait $ssh_pid +exit_code=$? + +if [ $exit_code -eq 0 ]; then + fail "ssh client should fail on signal" +fi + diff --git a/regress/forward-control.sh b/regress/forward-control.sh index 3b1f69a71e5..02f7667a665 100644 --- a/regress/forward-control.sh +++ b/regress/forward-control.sh @@ -1,4 +1,4 @@ -# $OpenBSD: forward-control.sh,v 1.7 2018/06/07 14:29:43 djm Exp $ +# $OpenBSD: forward-control.sh,v 1.8 2021/05/07 09:23:40 dtucker Exp $ # Placed in the Public Domain. tid="sshd control of local and remote forwarding" @@ -46,7 +46,7 @@ check_lfwd() { wait_for_file_to_appear $READY || \ fatal "check_lfwd ssh fail: $_message" ${SSH} -F $OBJ/ssh_config -p $LFWD_PORT \ - -oConnectionAttempts=4 host true >/dev/null 2>&1 + -oConnectionAttempts=10 host true >/dev/null 2>&1 _result=$? kill $_sshpid `cat $READY` 2>/dev/null wait_for_process_to_exit $_sshpid @@ -76,7 +76,7 @@ check_rfwd() { _result=$? if test $_result -eq 0 ; then ${SSH} -F $OBJ/ssh_config -p $RFWD_PORT \ - -oConnectionAttempts=4 host true >/dev/null 2>&1 + -oConnectionAttempts=10 host true >/dev/null 2>&1 _result=$? kill $_sshpid `cat $READY` 2>/dev/null wait_for_process_to_exit $_sshpid diff --git a/regress/forwarding.sh b/regress/forwarding.sh index cd634f2f65d..a72bd3a05cf 100644 --- a/regress/forwarding.sh +++ b/regress/forwarding.sh @@ -1,4 +1,4 @@ -# $OpenBSD: forwarding.sh,v 1.23 2019/07/20 09:50:58 dtucker Exp $ +# $OpenBSD: forwarding.sh,v 1.24 2021/05/07 09:23:40 dtucker Exp $ # Placed in the Public Domain. tid="local and remote forwarding" @@ -29,7 +29,7 @@ rm -f $CTL ${SSH} -S $CTL -N -M -F $OBJ/ssh_config -f $fwd somehost trace "transfer over forwarded channels and check result" -${SSH} -F $OBJ/ssh_config -p$last -o 'ConnectionAttempts=4' \ +${SSH} -F $OBJ/ssh_config -p$last -o 'ConnectionAttempts=10' \ somehost cat ${DATA} > ${COPY} test -s ${COPY} || fail "failed copy of ${DATA}" cmp ${DATA} ${COPY} || fail "corrupted copy of ${DATA}" @@ -110,7 +110,7 @@ rm -f $CTL ${SSH} -S $CTL -N -M -F $OBJ/ssh_config -f somehost trace "config file: transfer over forwarded channels and check result" -${SSH} -F $OBJ/ssh_config -p${base}02 -o 'ConnectionAttempts=4' \ +${SSH} -F $OBJ/ssh_config -p${base}02 -o 'ConnectionAttempts=10' \ somehost cat ${DATA} > ${COPY} test -s ${COPY} || fail "failed copy of ${DATA}" cmp ${DATA} ${COPY} || fail "corrupted copy of ${DATA}" @@ -124,7 +124,7 @@ ${SSH} -S $CTL -N -M -f -F $OBJ/ssh_config -R${base}01:[$OBJ/unix-1.fwd] somehos ${SSH} -S $CTL.1 -N -M -f -F $OBJ/ssh_config -L[$OBJ/unix-1.fwd]:[$OBJ/unix-2.fwd] somehost ${SSH} -S $CTL.2 -N -M -f -F $OBJ/ssh_config -R[$OBJ/unix-2.fwd]:[$OBJ/unix-3.fwd] somehost ${SSH} -S $CTL.3 -N -M -f -F $OBJ/ssh_config -L[$OBJ/unix-3.fwd]:127.0.0.1:$PORT somehost -${SSH} -F $OBJ/ssh_config -p${base}01 -o 'ConnectionAttempts=4' \ +${SSH} -F $OBJ/ssh_config -p${base}01 -o 'ConnectionAttempts=10' \ somehost cat ${DATA} > ${COPY} test -s ${COPY} || fail "failed copy ${DATA}" cmp ${DATA} ${COPY} || fail "corrupted copy of ${DATA}" diff --git a/regress/hostbased.sh b/regress/hostbased.sh new file mode 100644 index 00000000000..04a1c1a2da4 --- /dev/null +++ b/regress/hostbased.sh @@ -0,0 +1,66 @@ +# $OpenBSD: hostbased.sh,v 1.3 2022/01/08 07:55:26 dtucker Exp $ +# Placed in the Public Domain. + +# This test requires external setup and thus is skipped unless +# TEST_SSH_HOSTBASED_AUTH and SUDO are set to "yes". +# Since ssh-keysign has key paths hard coded, unlike the other tests it +# needs to use the real host keys. It requires: +# - ssh-keysign must be installed and setuid. +# - "EnableSSHKeysign yes" must be in the system ssh_config. +# - the system's own real FQDN the system-wide shosts.equiv. +# - the system's real public key fingerprints must me in global ssh_known_hosts. +# +tid="hostbased" + +if [ -z "${TEST_SSH_HOSTBASED_AUTH}" ]; then + skip "TEST_SSH_HOSTBASED_AUTH not set." +elif [ -z "${SUDO}" ]; then + skip "SUDO not set" +fi + +# Enable all supported hostkey algos (but no others) +hostkeyalgos=`${SSH} -Q HostKeyAlgorithms | tr '\n' , | sed 's/,$//'` + +cat >>$OBJ/sshd_proxy <>$OBJ/ssh_proxy < /dev/null @@ -13,39 +13,73 @@ r=$? grep -vi 'hostkey' $OBJ/sshd_proxy > $OBJ/sshd_proxy.orig echo "HostKeyAgent $SSH_AUTH_SOCK" >> $OBJ/sshd_proxy.orig +trace "make CA key" + +${SSHKEYGEN} -qt ed25519 -f $OBJ/agent-ca -N '' || fatal "ssh-keygen CA" + trace "load hostkeys" for k in $SSH_KEYTYPES ; do ${SSHKEYGEN} -qt $k -f $OBJ/agent-key.$k -N '' || fatal "ssh-keygen $k" - ( - printf 'localhost-with-alias,127.0.0.1,::1 ' - cat $OBJ/agent-key.$k.pub - ) >> $OBJ/known_hosts.orig - ${SSHADD} $OBJ/agent-key.$k >/dev/null 2>&1 || \ + ${SSHKEYGEN} -s $OBJ/agent-ca -qh -n localhost-with-alias \ + -I localhost-with-alias $OBJ/agent-key.$k.pub || \ + fatal "sign $k" + ${SSHADD} -k $OBJ/agent-key.$k >/dev/null 2>&1 || \ fatal "couldn't load key $OBJ/agent-key.$k" - echo "Hostkey $OBJ/agent-key.${k}" >> $OBJ/sshd_proxy.orig # Remove private key so the server can't use it. rm $OBJ/agent-key.$k || fatal "couldn't rm $OBJ/agent-key.$k" done -cp $OBJ/known_hosts.orig $OBJ/known_hosts +rm $OBJ/agent-ca # Don't need CA private any more either unset SSH_AUTH_SOCK -for ps in yes; do - for k in $SSH_KEYTYPES ; do - verbose "key type $k privsep=$ps" - cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy - echo "UsePrivilegeSeparation $ps" >> $OBJ/sshd_proxy - echo "HostKeyAlgorithms $k" >> $OBJ/sshd_proxy - opts="-oHostKeyAlgorithms=$k -F $OBJ/ssh_proxy" - cp $OBJ/known_hosts.orig $OBJ/known_hosts - SSH_CONNECTION=`${SSH} $opts host 'echo $SSH_CONNECTION'` - if [ $? -ne 0 ]; then - fail "privsep=$ps failed" - fi - if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then - fail "bad SSH_CONNECTION key type $k privsep=$ps" - fi - done +for k in $SSH_KEYTYPES ; do + verbose "key type $k" + cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy + echo "HostKeyAlgorithms $k" >> $OBJ/sshd_proxy + echo "Hostkey $OBJ/agent-key.${k}" >> $OBJ/sshd_proxy + opts="-oHostKeyAlgorithms=$k -F $OBJ/ssh_proxy" + ( printf 'localhost-with-alias,127.0.0.1,::1 ' ; + cat $OBJ/agent-key.$k.pub) > $OBJ/known_hosts + SSH_CONNECTION=`${SSH} $opts host 'echo $SSH_CONNECTION'` + if [ $? -ne 0 ]; then + fail "keytype $k failed" + fi + if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then + fail "bad SSH_CONNECTION key type $k" + fi +done + +SSH_CERTTYPES=`ssh -Q key-sig | grep 'cert-v01@openssh.com'` + +# Prepare sshd_proxy for certificates. +cp $OBJ/sshd_proxy.orig $OBJ/sshd_proxy +HOSTKEYALGS="" +for k in $SSH_CERTTYPES ; do + test -z "$HOSTKEYALGS" || HOSTKEYALGS="${HOSTKEYALGS}," + HOSTKEYALGS="${HOSTKEYALGS}${k}" +done +for k in $SSH_KEYTYPES ; do + echo "Hostkey $OBJ/agent-key.${k}.pub" >> $OBJ/sshd_proxy + echo "HostCertificate $OBJ/agent-key.${k}-cert.pub" >> $OBJ/sshd_proxy + test -f $OBJ/agent-key.${k}.pub || fatal "no $k key" + test -f $OBJ/agent-key.${k}-cert.pub || fatal "no $k cert" +done +echo "HostKeyAlgorithms $HOSTKEYALGS" >> $OBJ/sshd_proxy + +# Add only CA trust anchor to known_hosts. +( printf '@cert-authority localhost-with-alias ' ; + cat $OBJ/agent-ca.pub) > $OBJ/known_hosts + +for k in $SSH_CERTTYPES ; do + verbose "cert type $k" + opts="-oHostKeyAlgorithms=$k -F $OBJ/ssh_proxy" + SSH_CONNECTION=`${SSH} $opts host 'echo $SSH_CONNECTION'` + if [ $? -ne 0 ]; then + fail "cert type $k failed" + fi + if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then + fail "bad SSH_CONNECTION key type $k" + fi done trace "kill agent" diff --git a/regress/hostkey-rotate.sh b/regress/hostkey-rotate.sh index 2852c457c25..5898cbd8ae4 100644 --- a/regress/hostkey-rotate.sh +++ b/regress/hostkey-rotate.sh @@ -1,8 +1,27 @@ -# $OpenBSD: hostkey-rotate.sh,v 1.9 2020/10/07 06:38:16 djm Exp $ +# $OpenBSD: hostkey-rotate.sh,v 1.10 2022/01/05 08:25:05 djm Exp $ # Placed in the Public Domain. tid="hostkey rotate" +# +# GNU (f)grep <=2.18, as shipped by FreeBSD<=12 and NetBSD<=9 will occasionally +# fail to find ssh host keys in the hostkey-rotate test. If we have those +# versions, use awk instead. +# See # https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258616 +# +case `grep --version 2>&1 | awk '/GNU grep/{print $4}'` in +2.19) fgrep=good ;; +1.*|2.?|2.?.?|2.1?) fgrep=bad ;; # stock GNU grep +2.5.1*) fgrep=bad ;; # FreeBSD and NetBSD +*) fgrep=good ;; +esac +if test "x$fgrep" = "xbad"; then + fgrep() +{ + awk 'BEGIN{e=1} {if (index($0,"'$1'")>0){e=0;print}} END{exit e}' $2 +} +fi + rm -f $OBJ/hkr.* $OBJ/ssh_proxy.orig $OBJ/ssh_proxy.orig grep -vi 'hostkey' $OBJ/sshd_proxy > $OBJ/sshd_proxy.orig @@ -25,9 +44,14 @@ for k in $SSH_HOSTKEY_TYPES; do echo "Hostkey $OBJ/hkr.${k}" >> $OBJ/sshd_proxy.orig nkeys=`expr $nkeys + 1` test "x$all_algs" = "x" || all_algs="${all_algs}," - all_algs="${all_algs}$k" case "$k" in - ssh-rsa) secondary="ssh-rsa" ;; + ssh-rsa) + secondary="ssh-rsa" + all_algs="${all_algs}rsa-sha2-256,rsa-sha2-512,$k" + ;; + *) + all_algs="${all_algs}$k" + ;; esac done @@ -73,8 +97,12 @@ done # Check each key type for k in $SSH_HOSTKEY_TYPES; do + case "$k" in + ssh-rsa) alg="rsa-sha2-256,rsa-sha2-512,ssh-rsa" ;; + *) alg="$k" ;; + esac verbose "learn additional hostkeys, type=$k" - dossh -oStrictHostKeyChecking=yes -oHostKeyAlgorithms=$k,$all_algs + dossh -oStrictHostKeyChecking=yes -oHostKeyAlgorithms=$alg,$all_algs expect_nkeys $nkeys "learn hostkeys $k" check_key_present $k || fail "didn't learn $k correctly" done diff --git a/regress/keygen-convert.sh b/regress/keygen-convert.sh index fce110ea153..95656581c5b 100644 --- a/regress/keygen-convert.sh +++ b/regress/keygen-convert.sh @@ -1,40 +1,54 @@ -# $OpenBSD: keygen-convert.sh,v 1.2 2019/07/23 07:55:29 dtucker Exp $ +# $OpenBSD: keygen-convert.sh,v 1.6 2021/07/24 02:57:28 dtucker Exp $ # Placed in the Public Domain. tid="convert keys" -types="" -for i in ${SSH_KEYTYPES}; do - case "$i" in - ssh-dss) types="$types dsa" ;; - ssh-rsa) types="$types rsa" ;; - esac -done +cat > $OBJ/askpass <&1 | grep "ssh-keygen -e" >/dev/null; then + test_import_export=1 +fi -for t in $types; do +for t in ${SSH_KEYTYPES}; do # generate user key for agent trace "generating $t key" rm -f $OBJ/$t-key ${SSHKEYGEN} -q -N "" -t $t -f $OBJ/$t-key - trace "export $t private to rfc4716 public" - ${SSHKEYGEN} -q -e -f $OBJ/$t-key >$OBJ/$t-key-rfc || \ - fail "export $t private to rfc4716 public" + if test "x$test_import_export" = "x1"; then + trace "export $t private to rfc4716 public" + ${SSHKEYGEN} -q -e -f $OBJ/$t-key >$OBJ/$t-key-rfc || \ + fail "export $t private to rfc4716 public" + + trace "export $t public to rfc4716 public" + ${SSHKEYGEN} -q -e -f $OBJ/$t-key.pub >$OBJ/$t-key-rfc.pub || \ + fail "$t public to rfc4716 public" + + cmp $OBJ/$t-key-rfc $OBJ/$t-key-rfc.pub || \ + fail "$t rfc4716 exports differ between public and private" - trace "export $t public to rfc4716 public" - ${SSHKEYGEN} -q -e -f $OBJ/$t-key.pub >$OBJ/$t-key-rfc.pub || \ - fail "$t public to rfc4716 public" + trace "import $t rfc4716 public" + ${SSHKEYGEN} -q -i -f $OBJ/$t-key-rfc >$OBJ/$t-rfc-imported || \ + fail "$t import rfc4716 public" - cmp $OBJ/$t-key-rfc $OBJ/$t-key-rfc.pub || \ - fail "$t rfc4716 exports differ between public and private" + cut -f1,2 -d " " $OBJ/$t-key.pub >$OBJ/$t-key-nocomment.pub + cmp $OBJ/$t-key-nocomment.pub $OBJ/$t-rfc-imported || \ + fail "$t imported differs from original" + fi - trace "import $t rfc4716 public" - ${SSHKEYGEN} -q -i -f $OBJ/$t-key-rfc >$OBJ/$t-rfc-imported || \ - fail "$t import rfc4716 public" + trace "set passphrase $t" + ${SSHKEYGEN} -q -p -P '' -N 'hunter2' -f $OBJ/$t-key >/dev/null || \ + fail "$t set passphrase failed" - cut -f1,2 -d " " $OBJ/$t-key.pub >$OBJ/$t-key-nocomment.pub - cmp $OBJ/$t-key-nocomment.pub $OBJ/$t-rfc-imported || \ - fail "$t imported differs from original" + trace "export $t to public with passphrase" + SSH_ASKPASS=$OBJ/askpass SSH_ASKPASS_REQUIRE=force \ + ${SSHKEYGEN} -y -f $OBJ/$t-key >$OBJ/$t-key-nocomment.pub + cmp $OBJ/$t-key.pub $OBJ/$t-key-nocomment.pub || \ + fail "$t exported pubkey differs from generated" rm -f $OBJ/$t-key $OBJ/$t-key.pub $OBJ/$t-key-rfc $OBJ/$t-key-rfc.pub \ $OBJ/$t-rfc-imported $OBJ/$t-key-nocomment.pub diff --git a/regress/keygen-sshfp.sh b/regress/keygen-sshfp.sh new file mode 100644 index 00000000000..2abf9adecac --- /dev/null +++ b/regress/keygen-sshfp.sh @@ -0,0 +1,29 @@ +# $OpenBSD: keygen-sshfp.sh,v 1.2 2021/07/19 02:29:28 dtucker Exp $ +# Placed in the Public Domain. + +tid="keygen-sshfp" + +trace "keygen fingerprints" +fp=`${SSHKEYGEN} -r test -f ${SRC}/ed25519_openssh.pub | \ + awk '$5=="1"{print $6}'` +if [ "$fp" != "8a8647a7567e202ce317e62606c799c53d4c121f" ]; then + fail "keygen fingerprint sha1" +fi +fp=`${SSHKEYGEN} -r test -f ${SRC}/ed25519_openssh.pub | \ + awk '$5=="2"{print $6}'` +if [ "$fp" != \ + "54a506fb849aafb9f229cf78a94436c281efcb4ae67c8a430e8c06afcb5ee18f" ]; then + fail "keygen fingerprint sha256" +fi + +if ${SSH} -Q key-plain | grep ssh-rsa >/dev/null; then + fp=`${SSHKEYGEN} -r test -f ${SRC}/rsa_openssh.pub | awk '$5=="1"{print $6}'` + if [ "$fp" != "99c79cc09f5f81069cc017cdf9552cfc94b3b929" ]; then + fail "keygen fingerprint sha1" + fi + fp=`${SSHKEYGEN} -r test -f ${SRC}/rsa_openssh.pub | awk '$5=="2"{print $6}'` + if [ "$fp" != \ + "e30d6b9eb7a4de495324e4d5870b8220577993ea6af417e8e4a4f1c5bf01a9b6" ]; then + fail "keygen fingerprint sha256" + fi +fi diff --git a/regress/keys-command.sh b/regress/keys-command.sh index 33b6e7b423d..5feec172b45 100644 --- a/regress/keys-command.sh +++ b/regress/keys-command.sh @@ -1,12 +1,10 @@ -# $OpenBSD: keys-command.sh,v 1.6 2019/07/25 08:48:11 dtucker Exp $ +# $OpenBSD: keys-command.sh,v 1.8 2021/09/30 04:22:50 dtucker Exp $ # Placed in the Public Domain. tid="authorized keys from command" if [ -z "$SUDO" -a ! -w /var/run ]; then - echo "skipped (SUDO not set)" - echo "need SUDO to create file in /var/run, test won't work without" - exit 0 + skip "need SUDO to create file in /var/run, test won't work without" fi rm -f $OBJ/keys-command-args @@ -77,5 +75,5 @@ if [ -x $KEY_COMMAND ]; then fail "connect failed" fi else - echo "SKIPPED: $KEY_COMMAND not executable (/var/run mounted noexec?)" + skip "$KEY_COMMAND not executable (/var/run mounted noexec?)" fi diff --git a/regress/knownhosts-command.sh b/regress/knownhosts-command.sh index f15df670b0c..8472ec8121c 100644 --- a/regress/knownhosts-command.sh +++ b/regress/knownhosts-command.sh @@ -1,4 +1,4 @@ -# $OpenBSD: knownhosts-command.sh,v 1.2 2020/12/22 06:47:24 djm Exp $ +# $OpenBSD: knownhosts-command.sh,v 1.3 2021/08/30 01:15:45 djm Exp $ # Placed in the Public Domain. tid="known hosts command " @@ -39,7 +39,9 @@ chmod a+x $OBJ/knownhosts_command ${SSH} -F $OBJ/ssh_proxy x true && fail "ssh connect succeeded with bad exit" for keytype in ${SSH_HOSTKEY_TYPES} ; do + algs=$keytype test "x$keytype" = "xssh-dss" && continue + test "x$keytype" = "xssh-rsa" && algs=ssh-rsa,rsa-sha2-256,rsa-sha2-512 verbose "keytype $keytype" cat > $OBJ/knownhosts_command << _EOF #!/bin/sh @@ -48,6 +50,6 @@ test "x\$1" = "x$keytype" || die "wrong keytype \$1 (expected $keytype)" test "x\$3" = "x$LOGNAME" || die "wrong username \$3 (expected $LOGNAME)" grep -- "\$1.*\$2" $OBJ/known_hosts _EOF - ${SSH} -F $OBJ/ssh_proxy -oHostKeyAlgorithms=$keytype x true || + ${SSH} -F $OBJ/ssh_proxy -oHostKeyAlgorithms=$algs x true || fail "ssh connect failed for keytype $x" done diff --git a/regress/knownhosts.sh b/regress/knownhosts.sh new file mode 100644 index 00000000000..dfc768ac974 --- /dev/null +++ b/regress/knownhosts.sh @@ -0,0 +1,17 @@ +# $OpenBSD: knownhosts.sh,v 1.1 2021/10/01 05:20:20 dtucker Exp $ +# Placed in the Public Domain. + +tid="known hosts" + +opts="-F $OBJ/ssh_proxy" + +trace "test initial connection" +${SSH} $opts somehost true || fail "initial connection" + +trace "learn hashed known host" +>$OBJ/known_hosts +${SSH} -ohashknownhosts=yes -o stricthostkeychecking=no $opts somehost true \ + || fail "learn hashed known_hosts" + +trace "test hashed known hosts" +${SSH} $opts somehost true || fail "reconnect with hashed known hosts" diff --git a/regress/login-timeout.sh b/regress/login-timeout.sh index 4c2d07dc255..1577da1590f 100644 --- a/regress/login-timeout.sh +++ b/regress/login-timeout.sh @@ -1,9 +1,9 @@ -# $OpenBSD: login-timeout.sh,v 1.9 2017/08/07 00:53:51 dtucker Exp $ +# $OpenBSD: login-timeout.sh,v 1.10 2021/09/30 05:20:08 dtucker Exp $ # Placed in the Public Domain. tid="connect after login grace timeout" -trace "test login grace with privsep" +trace "test login grace time" cp $OBJ/sshd_config $OBJ/sshd_config.orig grep -vi LoginGraceTime $OBJ/sshd_config.orig > $OBJ/sshd_config echo "LoginGraceTime 10s" >> $OBJ/sshd_config diff --git a/regress/misc/fuzz-harness/Makefile b/regress/misc/fuzz-harness/Makefile index e879fcdae29..3938ac853d3 100644 --- a/regress/misc/fuzz-harness/Makefile +++ b/regress/misc/fuzz-harness/Makefile @@ -7,7 +7,7 @@ FUZZ_LIBS=-lFuzzer CXXFLAGS=-O2 -g -Wall -Wextra -Wno-unused-parameter -I ../../.. $(FUZZ_FLAGS) CFLAGS=$(CXXFLAGS) LDFLAGS=-L ../../.. -L ../../../openbsd-compat -g $(FUZZ_FLAGS) -LIBS=-lssh -lopenbsd-compat -lcrypto -lfido2 -lcbor $(FUZZ_LIBS) +LIBS=-lssh -lopenbsd-compat -lmd -lcrypto -lfido2 -lcbor $(FUZZ_LIBS) SK_NULL_OBJS=ssh-sk-null.o COMMON_DEPS=../../../libssh.a diff --git a/regress/misc/fuzz-harness/kex_fuzz.cc b/regress/misc/fuzz-harness/kex_fuzz.cc index 4740a7cb04c..d38ca859707 100644 --- a/regress/misc/fuzz-harness/kex_fuzz.cc +++ b/regress/misc/fuzz-harness/kex_fuzz.cc @@ -2,7 +2,6 @@ #include -#include #include #include #include @@ -327,7 +326,7 @@ int main(void) static struct shared_state *st; struct test_state *ts; const int keytypes[] = { KEY_RSA, KEY_DSA, KEY_ECDSA, KEY_ED25519, -1 }; - const char *kextypes[] = { + static const char * const kextypes[] = { "sntrup761x25519-sha512@openssh.com", "curve25519-sha256@libssh.org", "ecdh-sha2-nistp256", diff --git a/regress/misc/fuzz-harness/ssh-sk-null.cc b/regress/misc/fuzz-harness/ssh-sk-null.cc index 199af11217e..948c3d933c5 100644 --- a/regress/misc/fuzz-harness/ssh-sk-null.cc +++ b/regress/misc/fuzz-harness/ssh-sk-null.cc @@ -43,7 +43,8 @@ sshsk_sign(const char *provider_path, struct sshkey *key, int sshsk_load_resident(const char *provider_path, const char *device, - const char *pin, struct sshkey ***keysp, size_t *nkeysp) + const char *pin, u_int flags, struct sshsk_resident_key ***srksp, + size_t *nsrksp) { return SSH_ERR_FEATURE_UNSUPPORTED; } diff --git a/regress/misc/sk-dummy/sk-dummy.c b/regress/misc/sk-dummy/sk-dummy.c index 4003362d796..a10c0be281b 100644 --- a/regress/misc/sk-dummy/sk-dummy.c +++ b/regress/misc/sk-dummy/sk-dummy.c @@ -24,10 +24,21 @@ #include #include #include +#ifdef HAVE_SHA2_H +#include +#endif #include "crypto_api.h" #include "sk-api.h" +#if defined(WITH_OPENSSL) && !defined(OPENSSL_HAS_ECC) +# undef WITH_OPENSSL +#endif + +#ifdef WITH_OPENSSL +/* We don't use sha2 from OpenSSL and they can conflict with system sha2.h */ +#define OPENSSL_NO_SHA +#define USE_LIBC_SHA2 /* NetBSD 9 */ #include #include #include @@ -36,8 +47,6 @@ #include #include -/* #define SK_DEBUG 1 */ - /* Compatibility with OpenSSH 1.0.x */ #if (OPENSSL_VERSION_NUMBER < 0x10100000L) #define ECDSA_SIG_get0(sig, pr, ps) \ @@ -46,8 +55,11 @@ (*ps) = sig->s; \ } while (0) #endif +#endif /* WITH_OPENSSL */ + +/* #define SK_DEBUG 1 */ -#if SSH_SK_VERSION_MAJOR != 0x00070000 +#if SSH_SK_VERSION_MAJOR != 0x00090000 # error SK API has changed, sk-dummy.c needs an update #endif @@ -248,6 +260,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "calloc response failed"); goto out; } + response->flags = flags; switch(alg) { case SSH_SK_ECDSA: if (pack_key_ecdsa(response) != 0) @@ -313,7 +326,7 @@ sig_ecdsa(const uint8_t *message, size_t message_len, BIO *bio = NULL; EVP_PKEY *pk = NULL; EC_KEY *ec = NULL; - SHA256_CTX ctx; + SHA2_CTX ctx; uint8_t apphash[SHA256_DIGEST_LENGTH]; uint8_t sighash[SHA256_DIGEST_LENGTH]; uint8_t countbuf[4]; @@ -343,9 +356,9 @@ sig_ecdsa(const uint8_t *message, size_t message_len, } /* Prepare data to be signed */ dump("message", message, message_len); - SHA256_Init(&ctx); - SHA256_Update(&ctx, application, strlen(application)); - SHA256_Final(apphash, &ctx); + SHA256Init(&ctx); + SHA256Update(&ctx, (const u_char *)application, strlen(application)); + SHA256Final(apphash, &ctx); dump("apphash", apphash, sizeof(apphash)); countbuf[0] = (counter >> 24) & 0xff; countbuf[1] = (counter >> 16) & 0xff; @@ -353,12 +366,12 @@ sig_ecdsa(const uint8_t *message, size_t message_len, countbuf[3] = counter & 0xff; dump("countbuf", countbuf, sizeof(countbuf)); dump("flags", &flags, sizeof(flags)); - SHA256_Init(&ctx); - SHA256_Update(&ctx, apphash, sizeof(apphash)); - SHA256_Update(&ctx, &flags, sizeof(flags)); - SHA256_Update(&ctx, countbuf, sizeof(countbuf)); - SHA256_Update(&ctx, message, message_len); - SHA256_Final(sighash, &ctx); + SHA256Init(&ctx); + SHA256Update(&ctx, apphash, sizeof(apphash)); + SHA256Update(&ctx, &flags, sizeof(flags)); + SHA256Update(&ctx, countbuf, sizeof(countbuf)); + SHA256Update(&ctx, message, message_len); + SHA256Final(sighash, &ctx); dump("sighash", sighash, sizeof(sighash)); /* create and encode signature */ if ((sig = ECDSA_do_sign(sighash, sizeof(sighash), ec)) == NULL) { @@ -404,7 +417,7 @@ sig_ed25519(const uint8_t *message, size_t message_len, { size_t o; int ret = -1; - SHA256_CTX ctx; + SHA2_CTX ctx; uint8_t apphash[SHA256_DIGEST_LENGTH]; uint8_t signbuf[sizeof(apphash) + sizeof(flags) + sizeof(counter) + SHA256_DIGEST_LENGTH]; @@ -422,9 +435,9 @@ sig_ed25519(const uint8_t *message, size_t message_len, } /* Prepare data to be signed */ dump("message", message, message_len); - SHA256_Init(&ctx); - SHA256_Update(&ctx, application, strlen(application)); - SHA256_Final(apphash, &ctx); + SHA256Init(&ctx); + SHA256Update(&ctx, (const u_char *)application, strlen(application)); + SHA256Final(apphash, &ctx); dump("apphash", apphash, sizeof(apphash)); memcpy(signbuf, apphash, sizeof(apphash)); @@ -482,7 +495,7 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, { struct sk_sign_response *response = NULL; int ret = SSH_SK_ERR_GENERAL; - SHA256_CTX ctx; + SHA2_CTX ctx; uint8_t message[32]; if (sign_response == NULL) { @@ -496,9 +509,9 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, skdebug(__func__, "calloc response failed"); goto out; } - SHA256_Init(&ctx); - SHA256_Update(&ctx, data, datalen); - SHA256_Final(message, &ctx); + SHA256Init(&ctx); + SHA256Update(&ctx, data, datalen); + SHA256Final(message, &ctx); response->flags = flags; response->counter = 0x12345678; switch(alg) { diff --git a/regress/multipubkey.sh b/regress/multipubkey.sh index 9b227335318..8cdda1a9ae0 100644 --- a/regress/multipubkey.sh +++ b/regress/multipubkey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: multipubkey.sh,v 1.3 2019/12/11 18:47:14 djm Exp $ +# $OpenBSD: multipubkey.sh,v 1.4 2021/06/07 01:16:34 djm Exp $ # Placed in the Public Domain. tid="multiple pubkey" @@ -31,27 +31,35 @@ grep -v IdentityFile $OBJ/ssh_proxy.orig > $OBJ/ssh_proxy opts="-oProtocol=2 -F $OBJ/ssh_proxy -oIdentitiesOnly=yes" opts="$opts -i $OBJ/cert_user_key1 -i $OBJ/user_key1 -i $OBJ/user_key2" -for privsep in yes ; do +for match in no yes ; do ( - grep -v "Protocol" $OBJ/sshd_proxy.orig + cat $OBJ/sshd_proxy.orig echo "Protocol 2" - echo "UsePrivilegeSeparation $privsep" - echo "AuthenticationMethods publickey,publickey" echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" echo "AuthorizedPrincipalsFile $OBJ/authorized_principals_%u" ) > $OBJ/sshd_proxy + if test "$match" = "yes" ; then + echo "AuthenticationMethods none" >> $OBJ/sshd_proxy + echo "PubkeyAuthentication no" >> $OBJ/sshd_proxy + echo "Match all" >> $OBJ/sshd_proxy + echo "PubkeyAuthentication yes" >> $OBJ/sshd_proxy + fi + echo "AuthenticationMethods publickey,publickey" >> $OBJ/sshd_proxy # Single key should fail. + trace "match $match single key" rm -f $OBJ/authorized_principals_$USER cat $OBJ/user_key1.pub > $OBJ/authorized_keys_$USER ${SSH} $opts proxy true && fail "ssh succeeded with key" # Single key with same-public cert should fail. + trace "match $match pubkey + identical cert" echo mekmitasdigoat > $OBJ/authorized_principals_$USER cat $OBJ/user_key1.pub > $OBJ/authorized_keys_$USER ${SSH} $opts proxy true && fail "ssh succeeded with key+cert" # Multiple plain keys should succeed. + trace "match $match multiple public" rm -f $OBJ/authorized_principals_$USER cat $OBJ/user_key1.pub $OBJ/user_key2.pub > \ $OBJ/authorized_keys_$USER @@ -59,6 +67,7 @@ for privsep in yes ; do # Cert and different key should succeed # Key and different-public cert should succeed. + trace "match $match pubkey + different cert" echo mekmitasdigoat > $OBJ/authorized_principals_$USER cat $OBJ/user_key2.pub > $OBJ/authorized_keys_$USER ${SSH} $opts proxy true || fail "ssh failed with key/cert" diff --git a/regress/percent.sh b/regress/percent.sh index 72f07f4b8ad..bb81779a013 100644 --- a/regress/percent.sh +++ b/regress/percent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: percent.sh,v 1.11 2021/02/05 22:03:40 dtucker Exp $ +# $OpenBSD: percent.sh,v 1.14 2022/02/20 03:47:26 dtucker Exp $ # Placed in the Public Domain. tid="percent expansions" @@ -21,7 +21,8 @@ echo "permitlocalcommand yes" >> $OBJ/ssh_proxy trial() { - opt="$1"; arg="$2"; expect="$3" + opt="$1"; arg="$2" + expect=`echo "$3" | sed 's|^//|/|'` # approximate realpath trace "test $opt=$arg $expect" rm -f $OBJ/actual @@ -79,7 +80,7 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ fi # Matches implementation in readconf.c:ssh_connection_hash() HASH=`printf "${HOSTNAME}127.0.0.1${PORT}$REMUSER" | - openssl sha1 | cut -f2 -d' '` + $OPENSSL_BIN sha1 | cut -f2 -d' '` trial $i '%%' '%' trial $i '%C' $HASH trial $i '%i' $USERID diff --git a/regress/principals-command.sh b/regress/principals-command.sh index 5e535c13346..8278711e86f 100644 --- a/regress/principals-command.sh +++ b/regress/principals-command.sh @@ -1,4 +1,4 @@ -# $OpenBSD: principals-command.sh,v 1.11 2019/12/16 02:39:05 djm Exp $ +# $OpenBSD: principals-command.sh,v 1.14 2021/09/30 05:26:26 dtucker Exp $ # Placed in the Public Domain. tid="authorized principals command" @@ -7,9 +7,7 @@ rm -f $OBJ/user_ca_key* $OBJ/cert_user_key* cp $OBJ/sshd_proxy $OBJ/sshd_proxy_bak if [ -z "$SUDO" -a ! -w /var/run ]; then - echo "skipped (SUDO not set)" - echo "need SUDO to create file in /var/run, test won't work without" - exit 0 + skip "need SUDO to create file in /var/run, test won't work without" fi case "$SSH_KEYTYPES" in @@ -61,114 +59,110 @@ if ! $OBJ/check-perm -m keys-command $PRINCIPALS_COMMAND ; then exit 0 fi -if [ -x $PRINCIPALS_COMMAND ]; then - # Test explicitly-specified principals - for privsep in yes ; do - _prefix="privsep $privsep" - - # Setup for AuthorizedPrincipalsCommand - rm -f $OBJ/authorized_keys_$USER - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - echo "AuthorizedKeysFile none" - echo "AuthorizedPrincipalsCommand $PRINCIPALS_COMMAND" \ - "%u %t %T %i %s %F %f %k %K" - echo "AuthorizedPrincipalsCommandUser ${LOGNAME}" - echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" - ) > $OBJ/sshd_proxy - - # XXX test missing command - # XXX test failing command - - # Empty authorized_principals - verbose "$tid: ${_prefix} empty authorized_principals" - echo > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - - # Wrong authorized_principals - verbose "$tid: ${_prefix} wrong authorized_principals" - echo gregorsamsa > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - - # Correct authorized_principals - verbose "$tid: ${_prefix} correct authorized_principals" - echo mekmitasdigoat > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi - - # authorized_principals with bad key option - verbose "$tid: ${_prefix} authorized_principals bad key opt" - echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - - # authorized_principals with command=false - verbose "$tid: ${_prefix} authorized_principals command=false" - echo 'command="false" mekmitasdigoat' > \ - $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - - # authorized_principals with command=true - verbose "$tid: ${_prefix} authorized_principals command=true" - echo 'command="true" mekmitasdigoat' > \ - $OBJ/authorized_principals_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi - - # Setup for principals= key option - rm -f $OBJ/authorized_principals_$USER - ( - cat $OBJ/sshd_proxy_bak - echo "UsePrivilegeSeparation $privsep" - ) > $OBJ/sshd_proxy - - # Wrong principals list - verbose "$tid: ${_prefix} wrong principals key option" - ( - printf 'cert-authority,principals="gregorsamsa" ' - cat $OBJ/user_ca_key.pub - ) > $OBJ/authorized_keys_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -eq 0 ]; then - fail "ssh cert connect succeeded unexpectedly" - fi - - # Correct principals list - verbose "$tid: ${_prefix} correct principals key option" - ( - printf 'cert-authority,principals="mekmitasdigoat" ' - cat $OBJ/user_ca_key.pub - ) > $OBJ/authorized_keys_$USER - ${SSH} -i $OBJ/cert_user_key \ - -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 - if [ $? -ne 0 ]; then - fail "ssh cert connect failed" - fi - done -else - echo "SKIPPED: $PRINCIPALS_COMMAND not executable " \ +if [ ! -x $PRINCIPALS_COMMAND ]; then + skip "$PRINCIPALS_COMMAND not executable " \ "(/var/run mounted noexec?)" fi + +# Test explicitly-specified principals +# Setup for AuthorizedPrincipalsCommand +rm -f $OBJ/authorized_keys_$USER +( + cat $OBJ/sshd_proxy_bak + echo "AuthorizedKeysFile none" + echo "AuthorizedPrincipalsCommand $PRINCIPALS_COMMAND" \ + "%u %t %T %i %s %F %f %k %K" + echo "AuthorizedPrincipalsCommandUser ${LOGNAME}" + echo "TrustedUserCAKeys $OBJ/user_ca_key.pub" +) > $OBJ/sshd_proxy + +# XXX test missing command +# XXX test failing command + +# Empty authorized_principals +verbose "$tid: empty authorized_principals" +echo > $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" +fi + +# Wrong authorized_principals +verbose "$tid: wrong authorized_principals" +echo gregorsamsa > $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" +fi + +# Correct authorized_principals +verbose "$tid: correct authorized_principals" +echo mekmitasdigoat > $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -ne 0 ]; then + fail "ssh cert connect failed" +fi + +# authorized_principals with bad key option +verbose "$tid: authorized_principals bad key opt" +echo 'blah mekmitasdigoat' > $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" +fi + +# authorized_principals with command=false +verbose "$tid: authorized_principals command=false" +echo 'command="false" mekmitasdigoat' > \ + $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" +fi + + +# authorized_principals with command=true +verbose "$tid: authorized_principals command=true" +echo 'command="true" mekmitasdigoat' > \ + $OBJ/authorized_principals_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost false >/dev/null 2>&1 +if [ $? -ne 0 ]; then + fail "ssh cert connect failed" +fi + +# Setup for principals= key option +# TODO: remove? +rm -f $OBJ/authorized_principals_$USER +( + cat $OBJ/sshd_proxy_bak +) > $OBJ/sshd_proxy + +# Wrong principals list +verbose "$tid: wrong principals key option" +( + printf 'cert-authority,principals="gregorsamsa" ' + cat $OBJ/user_ca_key.pub +) > $OBJ/authorized_keys_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -eq 0 ]; then + fail "ssh cert connect succeeded unexpectedly" +fi + +# Correct principals list +verbose "$tid: correct principals key option" +( + printf 'cert-authority,principals="mekmitasdigoat" ' + cat $OBJ/user_ca_key.pub +) > $OBJ/authorized_keys_$USER +${SSH} -i $OBJ/cert_user_key \ + -F $OBJ/ssh_proxy somehost true >/dev/null 2>&1 +if [ $? -ne 0 ]; then + fail "ssh cert connect failed" +fi diff --git a/regress/putty-ciphers.sh b/regress/putty-ciphers.sh index 708c288d73a..5b8e25a2719 100644 --- a/regress/putty-ciphers.sh +++ b/regress/putty-ciphers.sh @@ -1,11 +1,17 @@ -# $OpenBSD: putty-ciphers.sh,v 1.7 2020/01/23 03:35:07 dtucker Exp $ +# $OpenBSD: putty-ciphers.sh,v 1.11 2021/09/01 03:16:06 dtucker Exp $ # Placed in the Public Domain. tid="putty ciphers" if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - echo "putty interop tests not enabled" - exit 0 + skip "putty interop tests not enabled" +fi + +# Re-enable ssh-rsa on older PuTTY versions. +oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" +if [ "x$oldver" = "xyes" ]; then + echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy + echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy fi for c in aes 3des aes128-ctr aes192-ctr aes256-ctr chacha20 ; do diff --git a/regress/putty-kex.sh b/regress/putty-kex.sh index 686d0e1af2e..c75802a0610 100644 --- a/regress/putty-kex.sh +++ b/regress/putty-kex.sh @@ -1,11 +1,17 @@ -# $OpenBSD: putty-kex.sh,v 1.5 2020/01/23 03:24:38 dtucker Exp $ +# $OpenBSD: putty-kex.sh,v 1.9 2021/09/01 03:16:06 dtucker Exp $ # Placed in the Public Domain. tid="putty KEX" if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - echo "putty interop tests not enabled" - exit 0 + skip "putty interop tests not enabled" +fi + +# Re-enable ssh-rsa on older PuTTY versions. +oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" +if [ "x$oldver" = "xyes" ]; then + echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy + echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy fi for k in dh-gex-sha1 dh-group1-sha1 dh-group14-sha1 ecdh ; do diff --git a/regress/putty-transfer.sh b/regress/putty-transfer.sh index 14b41022f8a..a6864f9515a 100644 --- a/regress/putty-transfer.sh +++ b/regress/putty-transfer.sh @@ -1,11 +1,17 @@ -# $OpenBSD: putty-transfer.sh,v 1.7 2020/01/23 11:19:12 dtucker Exp $ +# $OpenBSD: putty-transfer.sh,v 1.11 2021/09/01 03:16:06 dtucker Exp $ # Placed in the Public Domain. tid="putty transfer data" if test "x$REGRESS_INTEROP_PUTTY" != "xyes" ; then - echo "putty interop tests not enabled" - exit 0 + skip "putty interop tests not enabled" +fi + +# Re-enable ssh-rsa on older PuTTY versions. +oldver="`${PLINK} --version | awk '/plink: Release/{if ($3<0.76)print "yes"}'`" +if [ "x$oldver" = "xyes" ]; then + echo "HostKeyAlgorithms +ssh-rsa" >> ${OBJ}/sshd_proxy + echo "PubkeyAcceptedKeyTypes +ssh-rsa" >> ${OBJ}/sshd_proxy fi if [ "`${SSH} -Q compression`" = "none" ]; then diff --git a/regress/reconfigure.sh b/regress/reconfigure.sh index dd15eddb2a2..d5b4e9808fc 100644 --- a/regress/reconfigure.sh +++ b/regress/reconfigure.sh @@ -1,4 +1,4 @@ -# $OpenBSD: reconfigure.sh,v 1.6 2017/04/30 23:34:55 djm Exp $ +# $OpenBSD: reconfigure.sh,v 1.9 2021/06/10 09:46:28 dtucker Exp $ # Placed in the Public Domain. tid="simple connect after reconfigure" @@ -41,3 +41,25 @@ ${SSH} -F $OBJ/ssh_config somehost true if [ $? -ne 0 ]; then fail "ssh connect with failed after reconfigure" fi + +trace "reconfigure with active clients" +${SSH} -F $OBJ/ssh_config somehost sleep 10 # authenticated client +${NC} -d 127.0.0.1 $PORT >/dev/null & # unauthenticated client +PID=`$SUDO cat $PIDFILE` +rm -f $PIDFILE +$SUDO kill -HUP $PID + +trace "wait for sshd to restart" +i=0; +while [ ! -f $PIDFILE -a $i -lt 10 ]; do + i=`expr $i + 1` + sleep $i +done + +test -f $PIDFILE || fatal "sshd did not restart" + +trace "connect after restart with active clients" +${SSH} -F $OBJ/ssh_config somehost true +if [ $? -ne 0 ]; then + fail "ssh connect with failed after reconfigure" +fi diff --git a/regress/rekey.sh b/regress/rekey.sh index fd6a02cc7a6..61723cd8660 100644 --- a/regress/rekey.sh +++ b/regress/rekey.sh @@ -1,4 +1,4 @@ -# $OpenBSD: rekey.sh,v 1.18 2018/04/10 00:14:10 djm Exp $ +# $OpenBSD: rekey.sh,v 1.19 2021/07/19 05:08:54 dtucker Exp $ # Placed in the Public Domain. tid="rekey" @@ -71,7 +71,7 @@ for s in 5 10; do verbose "client rekeylimit default ${s}" rm -f ${COPY} ${LOG} ${SSH} < ${DATA} -oCompression=no -oRekeyLimit="default $s" -F \ - $OBJ/ssh_proxy somehost "cat >${COPY};sleep $s;sleep 3" + $OBJ/ssh_proxy somehost "cat >${COPY};sleep $s;sleep 10" if [ $? -ne 0 ]; then fail "ssh failed" fi @@ -88,7 +88,7 @@ for s in 5 10; do verbose "client rekeylimit default ${s} no data" rm -f ${COPY} ${LOG} ${SSH} -oCompression=no -oRekeyLimit="default $s" -F \ - $OBJ/ssh_proxy somehost "sleep $s;sleep 3" + $OBJ/ssh_proxy somehost "sleep $s;sleep 10" if [ $? -ne 0 ]; then fail "ssh failed" fi @@ -124,7 +124,7 @@ for s in 5 10; do cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy echo "rekeylimit default ${s}" >>$OBJ/sshd_proxy rm -f ${COPY} ${LOG} - ${SSH} -oCompression=no -F $OBJ/ssh_proxy somehost "sleep $s;sleep 3" + ${SSH} -oCompression=no -F $OBJ/ssh_proxy somehost "sleep $s;sleep 10" if [ $? -ne 0 ]; then fail "ssh failed" fi diff --git a/regress/scp-uri.sh b/regress/scp-uri.sh index c03d8bbe076..20ac3c89ec2 100644 --- a/regress/scp-uri.sh +++ b/regress/scp-uri.sh @@ -1,4 +1,4 @@ -# $OpenBSD: scp-uri.sh,v 1.2 2017/12/11 11:41:56 dtucker Exp $ +# $OpenBSD: scp-uri.sh,v 1.4 2021/08/10 03:35:45 djm Exp $ # Placed in the Public Domain. tid="scp-uri" @@ -12,7 +12,6 @@ DIR2=${COPY}.dd2 SRC=`dirname ${SCRIPT}` cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp chmod 755 ${OBJ}/scp-ssh-wrapper.scp -scpopts="-q -S ${OBJ}/scp-ssh-wrapper.scp" export SCP # used in scp-ssh-wrapper.scp scpclean() { @@ -24,47 +23,55 @@ scpclean() { cp $OBJ/ssh_config $OBJ/ssh_config.orig egrep -v '^ +(Port|User) +.*$' $OBJ/ssh_config.orig > $OBJ/ssh_config -verbose "$tid: simple copy local file to remote file" -scpclean -$SCP $scpopts ${DATA} "scp://${USER}@somehost:${PORT}/${COPY}" || fail "copy failed" -cmp ${DATA} ${COPY} || fail "corrupted copy" +for mode in scp sftp ; do + tag="$tid: $mode mode" + if test $mode = scp ; then + scpopts="-O -q -S ${OBJ}/scp-ssh-wrapper.scp" + else + scpopts="-s -D ${SFTPSERVER}" + fi + verbose "$tag: simple copy local file to remote file" + scpclean + $SCP $scpopts ${DATA} "scp://${USER}@somehost:${PORT}/${COPY}" || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" -verbose "$tid: simple copy remote file to local file" -scpclean -$SCP $scpopts "scp://${USER}@somehost:${PORT}/${DATA}" ${COPY} || fail "copy failed" -cmp ${DATA} ${COPY} || fail "corrupted copy" + verbose "$tag: simple copy remote file to local file" + scpclean + $SCP $scpopts "scp://${USER}@somehost:${PORT}/${DATA}" ${COPY} || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" -verbose "$tid: simple copy local file to remote dir" -scpclean -cp ${DATA} ${COPY} -$SCP $scpopts ${COPY} "scp://${USER}@somehost:${PORT}/${DIR}" || fail "copy failed" -cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + verbose "$tag: simple copy local file to remote dir" + scpclean + cp ${DATA} ${COPY} + $SCP $scpopts ${COPY} "scp://${USER}@somehost:${PORT}/${DIR}" || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" -verbose "$tid: simple copy remote file to local dir" -scpclean -cp ${DATA} ${COPY} -$SCP $scpopts "scp://${USER}@somehost:${PORT}/${COPY}" ${DIR} || fail "copy failed" -cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + verbose "$tag: simple copy remote file to local dir" + scpclean + cp ${DATA} ${COPY} + $SCP $scpopts "scp://${USER}@somehost:${PORT}/${COPY}" ${DIR} || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" -verbose "$tid: recursive local dir to remote dir" -scpclean -rm -rf ${DIR2} -cp ${DATA} ${DIR}/copy -$SCP $scpopts -r ${DIR} "scp://${USER}@somehost:${PORT}/${DIR2}" || fail "copy failed" -for i in $(cd ${DIR} && echo *); do - cmp ${DIR}/$i ${DIR2}/$i || fail "corrupted copy" -done + verbose "$tag: recursive local dir to remote dir" + scpclean + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -r ${DIR} "scp://${USER}@somehost:${PORT}/${DIR2}" || fail "copy failed" + for i in $(cd ${DIR} && echo *); do + cmp ${DIR}/$i ${DIR2}/$i || fail "corrupted copy" + done -verbose "$tid: recursive remote dir to local dir" -scpclean -rm -rf ${DIR2} -cp ${DATA} ${DIR}/copy -$SCP $scpopts -r "scp://${USER}@somehost:${PORT}/${DIR}" ${DIR2} || fail "copy failed" -for i in $(cd ${DIR} && echo *); do - cmp ${DIR}/$i ${DIR2}/$i || fail "corrupted copy" -done + verbose "$tag: recursive remote dir to local dir" + scpclean + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -r "scp://${USER}@somehost:${PORT}/${DIR}" ${DIR2} || fail "copy failed" + for i in $(cd ${DIR} && echo *); do + cmp ${DIR}/$i ${DIR2}/$i || fail "corrupted copy" + done -# TODO: scp -3 + # TODO: scp -3 +done scpclean rm -f ${OBJ}/scp-ssh-wrapper.exe diff --git a/regress/scp.sh b/regress/scp.sh index 62400efad37..358a8df66b1 100644 --- a/regress/scp.sh +++ b/regress/scp.sh @@ -1,4 +1,4 @@ -# $OpenBSD: scp.sh,v 1.11 2019/07/19 03:45:44 djm Exp $ +# $OpenBSD: scp.sh,v 1.13 2021/08/10 03:35:45 djm Exp $ # Placed in the Public Domain. tid="scp" @@ -19,7 +19,6 @@ DIR2=${COPY}.dd2 SRC=`dirname ${SCRIPT}` cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp chmod 755 ${OBJ}/scp-ssh-wrapper.scp -scpopts="-q -S ${OBJ}/scp-ssh-wrapper.scp" export SCP # used in scp-ssh-wrapper.scp scpclean() { @@ -28,109 +27,117 @@ scpclean() { chmod 755 ${DIR} ${DIR2} } -verbose "$tid: simple copy local file to local file" -scpclean -$SCP $scpopts ${DATA} ${COPY} || fail "copy failed" -cmp ${DATA} ${COPY} || fail "corrupted copy" - -verbose "$tid: simple copy local file to remote file" -scpclean -$SCP $scpopts ${DATA} somehost:${COPY} || fail "copy failed" -cmp ${DATA} ${COPY} || fail "corrupted copy" - -verbose "$tid: simple copy remote file to local file" -scpclean -$SCP $scpopts somehost:${DATA} ${COPY} || fail "copy failed" -cmp ${DATA} ${COPY} || fail "corrupted copy" - -verbose "$tid: simple copy local file to remote dir" -scpclean -cp ${DATA} ${COPY} -$SCP $scpopts ${COPY} somehost:${DIR} || fail "copy failed" -cmp ${COPY} ${DIR}/copy || fail "corrupted copy" - -verbose "$tid: simple copy local file to local dir" -scpclean -cp ${DATA} ${COPY} -$SCP $scpopts ${COPY} ${DIR} || fail "copy failed" -cmp ${COPY} ${DIR}/copy || fail "corrupted copy" - -verbose "$tid: simple copy remote file to local dir" -scpclean -cp ${DATA} ${COPY} -$SCP $scpopts somehost:${COPY} ${DIR} || fail "copy failed" -cmp ${COPY} ${DIR}/copy || fail "corrupted copy" +for mode in scp sftp ; do + tag="$tid: $mode mode" + if test $mode = scp ; then + scpopts="-O -q -S ${OBJ}/scp-ssh-wrapper.scp" + else + scpopts="-s -D ${SFTPSERVER}" + fi + verbose "tid: simple copy local file to local file" + scpclean + $SCP $scpopts ${DATA} ${COPY} || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" -verbose "$tid: recursive local dir to remote dir" -scpclean -rm -rf ${DIR2} -cp ${DATA} ${DIR}/copy -$SCP $scpopts -r ${DIR} somehost:${DIR2} || fail "copy failed" -diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: simple copy local file to remote file" + scpclean + $SCP $scpopts ${DATA} somehost:${COPY} || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" -verbose "$tid: recursive local dir to local dir" -scpclean -rm -rf ${DIR2} -cp ${DATA} ${DIR}/copy -$SCP $scpopts -r ${DIR} ${DIR2} || fail "copy failed" -diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: simple copy remote file to local file" + scpclean + $SCP $scpopts somehost:${DATA} ${COPY} || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" -verbose "$tid: recursive remote dir to local dir" -scpclean -rm -rf ${DIR2} -cp ${DATA} ${DIR}/copy -$SCP $scpopts -r somehost:${DIR} ${DIR2} || fail "copy failed" -diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: simple copy local file to remote dir" + scpclean + cp ${DATA} ${COPY} + $SCP $scpopts ${COPY} somehost:${DIR} || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" -verbose "$tid: shell metacharacters" -scpclean -(cd ${DIR} && \ -touch '`touch metachartest`' && \ -$SCP $scpopts *metachar* ${DIR2} 2>/dev/null; \ -[ ! -f metachartest ] ) || fail "shell metacharacters" + verbose "$tag: simple copy local file to local dir" + scpclean + cp ${DATA} ${COPY} + $SCP $scpopts ${COPY} ${DIR} || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" -if [ ! -z "$SUDO" ]; then - verbose "$tid: skipped file after scp -p with failed chown+utimes" + verbose "$tag: simple copy remote file to local dir" scpclean - cp -p ${DATA} ${DIR}/copy - cp -p ${DATA} ${DIR}/copy2 - cp ${DATA} ${DIR2}/copy - chmod 660 ${DIR2}/copy - $SUDO chown root ${DIR2}/copy - $SCP -p $scpopts somehost:${DIR}/\* ${DIR2} >/dev/null 2>&1 - $SUDO diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" - $SUDO rm ${DIR2}/copy -fi + cp ${DATA} ${COPY} + $SCP $scpopts somehost:${COPY} ${DIR} || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" -for i in 0 1 2 3 4 5 6 7; do - verbose "$tid: disallow bad server #$i" - SCPTESTMODE=badserver_$i - export DIR SCPTESTMODE + verbose "$tag: recursive local dir to remote dir" scpclean - $SCP $scpopts somehost:${DATA} ${DIR} >/dev/null 2>/dev/null - [ -d {$DIR}/rootpathdir ] && fail "allows dir relative to root dir" - [ -d ${DIR}/dotpathdir ] && fail "allows dir creation in non-recursive mode" + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -r ${DIR} somehost:${DIR2} || fail "copy failed" + diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: recursive local dir to local dir" scpclean - $SCP -r $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null - [ -d ${DIR}/dotpathdir ] && fail "allows dir creation outside of subdir" + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -r ${DIR} ${DIR2} || fail "copy failed" + diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: recursive remote dir to local dir" scpclean - $SCP -pr $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null - [ ! -w ${DIR2} ] && fail "allows target root attribute change" + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -r somehost:${DIR} ${DIR2} || fail "copy failed" + diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + verbose "$tag: shell metacharacters" scpclean - $SCP $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null - [ -e ${DIR2}/extrafile ] && fail "allows unauth object creation" - rm -f ${DIR2}/extrafile + (cd ${DIR} && \ + touch '`touch metachartest`' && \ + $SCP $scpopts *metachar* ${DIR2} 2>/dev/null; \ + [ ! -f metachartest ] ) || fail "shell metacharacters" + + if [ ! -z "$SUDO" ]; then + verbose "$tag: skipped file after scp -p with failed chown+utimes" + scpclean + cp -p ${DATA} ${DIR}/copy + cp -p ${DATA} ${DIR}/copy2 + cp ${DATA} ${DIR2}/copy + chmod 660 ${DIR2}/copy + $SUDO chown root ${DIR2}/copy + $SCP -p $scpopts somehost:${DIR}/\* ${DIR2} >/dev/null 2>&1 + $SUDO diff ${DIFFOPT} ${DIR} ${DIR2} || fail "corrupted copy" + $SUDO rm ${DIR2}/copy + fi + + for i in 0 1 2 3 4 5 6 7; do + verbose "$tag: disallow bad server #$i" + SCPTESTMODE=badserver_$i + export DIR SCPTESTMODE + scpclean + $SCP $scpopts somehost:${DATA} ${DIR} >/dev/null 2>/dev/null + [ -d {$DIR}/rootpathdir ] && fail "allows dir relative to root dir" + [ -d ${DIR}/dotpathdir ] && fail "allows dir creation in non-recursive mode" + + scpclean + $SCP -r $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null + [ -d ${DIR}/dotpathdir ] && fail "allows dir creation outside of subdir" + + scpclean + $SCP -pr $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null + [ ! -w ${DIR2} ] && fail "allows target root attribute change" + + scpclean + $SCP $scpopts somehost:${DATA} ${DIR2} >/dev/null 2>/dev/null + [ -e ${DIR2}/extrafile ] && fail "allows unauth object creation" + rm -f ${DIR2}/extrafile + done + + verbose "$tag: detect non-directory target" + scpclean + echo a > ${COPY} + echo b > ${COPY2} + $SCP $scpopts ${DATA} ${COPY} ${COPY2} + cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target" done -verbose "$tid: detect non-directory target" -scpclean -echo a > ${COPY} -echo b > ${COPY2} -$SCP $scpopts ${DATA} ${COPY} ${COPY2} -cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target" - scpclean rm -f ${OBJ}/scp-ssh-wrapper.scp diff --git a/regress/scp3.sh b/regress/scp3.sh new file mode 100644 index 00000000000..f71b1567755 --- /dev/null +++ b/regress/scp3.sh @@ -0,0 +1,60 @@ +# $OpenBSD: scp3.sh,v 1.3 2021/08/10 03:35:45 djm Exp $ +# Placed in the Public Domain. + +tid="scp3" + +#set -x + +COPY2=${OBJ}/copy2 +DIR=${COPY}.dd +DIR2=${COPY}.dd2 + +SRC=`dirname ${SCRIPT}` +cp ${SRC}/scp-ssh-wrapper.sh ${OBJ}/scp-ssh-wrapper.scp +chmod 755 ${OBJ}/scp-ssh-wrapper.scp +export SCP # used in scp-ssh-wrapper.scp + +scpclean() { + rm -rf ${COPY} ${COPY2} ${DIR} ${DIR2} + mkdir ${DIR} ${DIR2} + chmod 755 ${DIR} ${DIR2} +} + +for mode in scp sftp ; do + scpopts="-F${OBJ}/ssh_proxy -S ${SSH} -q" + tag="$tid: $mode mode" + if test $mode = scp ; then + scpopts="$scpopts -O" + else + scpopts="-s -D ${SFTPSERVER}" + fi + + verbose "$tag: simple copy remote file to remote file" + scpclean + $SCP $scpopts -3 hostA:${DATA} hostB:${COPY} || fail "copy failed" + cmp ${DATA} ${COPY} || fail "corrupted copy" + + verbose "$tag: simple copy remote file to remote dir" + scpclean + cp ${DATA} ${COPY} + $SCP $scpopts -3 hostA:${COPY} hostB:${DIR} || fail "copy failed" + cmp ${COPY} ${DIR}/copy || fail "corrupted copy" + + verbose "$tag: recursive remote dir to remote dir" + scpclean + rm -rf ${DIR2} + cp ${DATA} ${DIR}/copy + $SCP $scpopts -3r hostA:${DIR} hostB:${DIR2} || fail "copy failed" + diff -r ${DIR} ${DIR2} || fail "corrupted copy" + diff -r ${DIR2} ${DIR} || fail "corrupted copy" + + verbose "$tag: detect non-directory target" + scpclean + echo a > ${COPY} + echo b > ${COPY2} + $SCP $scpopts -3 hostA:${DATA} hostA:${COPY} hostB:${COPY2} + cmp ${COPY} ${COPY2} >/dev/null && fail "corrupt target" +done + +scpclean +rm -f ${OBJ}/scp-ssh-wrapper.exe diff --git a/regress/servcfginclude.sh b/regress/servcfginclude.sh index b6a9a248ff2..518a703d100 100644 --- a/regress/servcfginclude.sh +++ b/regress/servcfginclude.sh @@ -9,17 +9,17 @@ Match host a Match host b Banner /bb - Include $OBJ/sshd_config.i.* + Include $OBJ/sshd_config.i.* # comment Match host c - Include $OBJ/sshd_config.i.* + Include $OBJ/sshd_config.i.* # comment Banner /cc Match host m Include $OBJ/sshd_config.i.* Match Host d - Banner /dd + Banner /dd # comment Match Host e Banner /ee @@ -64,7 +64,7 @@ Match host a Match host b Banner /bbbb -Match host c +Match host c # comment Banner /cccc Match Host d diff --git a/regress/sftp-chroot.sh b/regress/sftp-chroot.sh index 5acc4d2de4a..a7766fe63a2 100644 --- a/regress/sftp-chroot.sh +++ b/regress/sftp-chroot.sh @@ -1,4 +1,4 @@ -# $OpenBSD: sftp-chroot.sh,v 1.7 2018/11/22 08:48:32 dtucker Exp $ +# $OpenBSD: sftp-chroot.sh,v 1.8 2021/09/01 00:50:27 dtucker Exp $ # Placed in the Public Domain. tid="sftp in chroot" @@ -9,14 +9,11 @@ PRIVDATA=${CHROOT}/${FILENAME} trap "${SUDO} rm -f ${PRIVDATA}" 0 if [ -z "$SUDO" -a ! -w /var/run ]; then - echo "need SUDO to create file in /var/run, test won't work without" - echo SKIPPED - exit 0 + skip "need SUDO to create file in /var/run, test won't work without" fi if ! $OBJ/check-perm -m chroot "$CHROOT" ; then - echo "skipped: $CHROOT is unsuitable as ChrootDirectory" - exit 0 + skip "$CHROOT is unsuitable as ChrootDirectory" fi $SUDO sh -c "echo mekmitastdigoat > $PRIVDATA" || \ diff --git a/regress/ssh2putty.sh b/regress/ssh2putty.sh index dcb975d952f..9b08310391c 100755 --- a/regress/ssh2putty.sh +++ b/regress/ssh2putty.sh @@ -1,5 +1,5 @@ #!/bin/sh -# $OpenBSD: ssh2putty.sh,v 1.5 2019/11/21 05:18:47 tb Exp $ +# $OpenBSD: ssh2putty.sh,v 1.9 2021/07/25 12:13:03 dtucker Exp $ if test "x$1" = "x" -o "x$2" = "x" -o "x$3" = "x" ; then echo "Usage: ssh2putty hostname port ssh-private-key" @@ -10,6 +10,8 @@ HOST=$1 PORT=$2 KEYFILE=$3 +OPENSSL_BIN="${OPENSSL_BIN:-openssl}" + # XXX - support DSA keys too if grep "BEGIN RSA PRIVATE KEY" $KEYFILE >/dev/null 2>&1 ; then : @@ -19,13 +21,13 @@ else fi public_exponent=` - openssl rsa -noout -text -in $KEYFILE | grep ^publicExponent | + $OPENSSL_BIN rsa -noout -text -in $KEYFILE | grep ^publicExponent | sed 's/.*(//;s/).*//' ` test $? -ne 0 && exit 1 modulus=` - openssl rsa -noout -modulus -in $KEYFILE | grep ^Modulus= | + $OPENSSL_BIN rsa -noout -modulus -in $KEYFILE | grep ^Modulus= | sed 's/^Modulus=/0x/' | tr A-Z a-z ` test $? -ne 0 && exit 1 diff --git a/regress/sshcfgparse.sh b/regress/sshcfgparse.sh index 0025c165706..504853d32db 100644 --- a/regress/sshcfgparse.sh +++ b/regress/sshcfgparse.sh @@ -1,4 +1,4 @@ -# $OpenBSD: sshcfgparse.sh,v 1.7 2021/02/24 23:12:35 dtucker Exp $ +# $OpenBSD: sshcfgparse.sh,v 1.9 2021/06/08 07:05:27 dtucker Exp $ # Placed in the Public Domain. tid="ssh config parse" @@ -32,7 +32,7 @@ expect_result_absent() { verbose "reparse minimal config" (${SSH} -G -F $OBJ/ssh_config somehost >$OBJ/ssh_config.1 && ${SSH} -G -F $OBJ/ssh_config.1 somehost >$OBJ/ssh_config.2 && - diff $OBJ/ssh_config.1 $OBJ/ssh_config.2) || fail "reparse minimal config" + diff $OBJ/ssh_config.1 $OBJ/ssh_config.2) || fail "failed to reparse minimal" verbose "ssh -W opts" f=`${SSH} -GF $OBJ/ssh_config host | awk '/exitonforwardfailure/{print $2}'` @@ -104,5 +104,16 @@ expect_result_present "$f" "yes" f=`${SSH} -GF none '-oforwardagent=SSH_AUTH_SOCK.forward' host | awk '/^forwardagent /{print$2}'` expect_result_present "$f" "SSH_AUTH_SOCK.forward" +verbose "command line override" +cat >$OBJ/ssh_config.0 <>$log exec "$@" -E$log diff --git a/regress/sshfp-connect.sh b/regress/sshfp-connect.sh new file mode 100644 index 00000000000..f78646922ef --- /dev/null +++ b/regress/sshfp-connect.sh @@ -0,0 +1,66 @@ +# $OpenBSD: sshfp-connect.sh,v 1.4 2021/09/01 00:50:27 dtucker Exp $ +# Placed in the Public Domain. + +# This test requires external setup and thus is skipped unless +# TEST_SSH_SSHFP_DOMAIN is set. It requires: +# 1) A DNSSEC-enabled domain, which TEST_SSH_SSHFP_DOMAIN points to. +# 2) A DNSSEC-validating resolver such as unwind(8). +# 3) The following SSHFP records with fingerprints from rsa_openssh.pub +# in that domain that are expected to succeed: +# sshtest: valid sha1 and sha256 fingerprints. +# sshtest-sha{1,256}, : valid fingerprints for that type only. +# and the following records that are expected to fail: +# sshtest-bad: invalid sha1 fingerprint and good sha256 fingerprint +# sshtest-sha{1,256}-bad: invalid fingerprints for that type only. +# +# sshtest IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B929 +# sshtest IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6 +# sshtest-sha1 IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B929 +# sshtest-sha256 IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6 +# sshtest-bad IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B6 +# sshtest-bad IN SSHFP 1 1 99C79CC09F5F81069CC017CDF9552CFC94B3B928 +# sshtest-sha1-bad IN SSHFP 1 1 99D79CC09F5F81069CC017CDF9552CFC94B3B929 +# sshtest-sha256-bad IN SSHFP 1 2 E30D6B9EB7A4DE495324E4D5870B8220577993EA6AF417E8E4A4F1C5 BF01A9B5 + +tid="sshfp connect" + +if ! $SSH -Q key-plain | grep ssh-rsa >/dev/null; then + skip "RSA keys not supported." +elif [ -z "${TEST_SSH_SSHFP_DOMAIN}" ]; then + skip "TEST_SSH_SSHFP_DOMAIN not set." +else + # Set RSA host key to match fingerprints above. + mv $OBJ/sshd_proxy $OBJ/sshd_proxy.orig + $SUDO cp $SRC/rsa_openssh.prv $OBJ/host.ssh-rsa + $SUDO chmod 600 $OBJ/host.ssh-rsa + sed -e "s|$OBJ/ssh-rsa|$OBJ/host.ssh-rsa|" \ + $OBJ/sshd_proxy.orig > $OBJ/sshd_proxy + + # Zero out known hosts and key aliases to force use of SSHFP records. + > $OBJ/known_hosts + mv $OBJ/ssh_proxy $OBJ/ssh_proxy.orig + sed -e "/HostKeyAlias.*localhost-with-alias/d" \ + -e "/Hostname.*127.0.0.1/d" \ + $OBJ/ssh_proxy.orig > $OBJ/ssh_proxy + + for n in sshtest sshtest-sha1 sshtest-sha256; do + trace "sshfp connect $n good fingerprint" + host="${n}.dtucker.net" + opts="-F $OBJ/ssh_proxy -o VerifyHostKeyDNS=yes " + opts="$opts -o HostKeyAlgorithms=rsa-sha2-512,rsa-sha2-256" + host="${n}.${TEST_SSH_SSHFP_DOMAIN}" + SSH_CONNECTION=`${SSH} $opts $host 'echo $SSH_CONNECTION'` + if [ $? -ne 0 ]; then + fail "ssh sshfp connect failed" + fi + if [ "$SSH_CONNECTION" != "UNKNOWN 65535 UNKNOWN 65535" ]; then + fail "bad SSH_CONNECTION: $SSH_CONNECTION" + fi + + trace "sshfp connect $n bad fingerprint" + host="${n}-bad.${TEST_SSH_SSHFP_DOMAIN}" + if ${SSH} $opts ${host} true; then + fail "sshfp-connect succeeded with bad SSHFP record" + fi + done +fi diff --git a/regress/sshsig.sh b/regress/sshsig.sh index 1e2f9dda46d..d4daa5c9dbd 100644 --- a/regress/sshsig.sh +++ b/regress/sshsig.sh @@ -1,4 +1,4 @@ -# $OpenBSD: sshsig.sh,v 1.4 2020/03/13 03:18:45 djm Exp $ +# $OpenBSD: sshsig.sh,v 1.14 2022/02/01 23:37:15 djm Exp $ # Placed in the Public Domain. tid="sshsig" @@ -12,12 +12,13 @@ sig_namespace="test-$$" sig_principal="user-$$@example.com" # Make a "wrong key" -${SSHKEYGEN} -t ed25519 -f $OBJ/wrong-key -C "wrong trousers, Grommit" -N '' \ +${SSHKEYGEN} -q -t ed25519 -f $OBJ/wrong-key \ + -C "wrong trousers, Grommit" -N '' \ || fatal "couldn't generate key" WRONG=$OBJ/wrong-key.pub # Make a CA key. -${SSHKEYGEN} -t ed25519 -f $OBJ/sigca-key -C "CA" -N '' \ +${SSHKEYGEN} -q -t ed25519 -f $OBJ/sigca-key -C "CA" -N '' \ || fatal "couldn't generate key" CA_PRIV=$OBJ/sigca-key CA_PUB=$OBJ/sigca-key.pub @@ -34,6 +35,7 @@ verbose "$tid: make certificates" for t in $SSH_KEYTYPES ; do ${SSHKEYGEN} -q -s $CA_PRIV -z $$ \ -I "regress signature key for $USER" \ + -V "19840101:19860101" \ -n $sig_principal $OBJ/${t} || \ fatal "couldn't sign ${t}" SIGNKEYS="$SIGNKEYS ${t}-cert.pub" @@ -46,22 +48,45 @@ for t in $SIGNKEYS; do sigfile=${OBJ}/sshsig-${keybase}.sig sigfile_agent=${OBJ}/sshsig-agent-${keybase}.sig pubkey=${OBJ}/${keybase}.pub + cert=${OBJ}/${keybase}-cert.pub + sigfile_cert=${OBJ}/sshsig-${keybase}-cert.sig ${SSHKEYGEN} -vvv -Y sign -f ${OBJ}/$t -n $sig_namespace \ - < $DATA > $sigfile 2>/dev/null || fail "sign using $t failed" + -Ohashalg=sha1 < $DATA > $sigfile 2>/dev/null && \ + fail "sign using $t with bad hash algorithm succeeded" + + for h in default sha256 sha512 ; do + case "$h" in + default) hashalg_arg="" ;; + *) hashalg_arg="-Ohashalg=$h" ;; + esac + ${SSHKEYGEN} -vvv -Y sign -f ${OBJ}/$t -n $sig_namespace \ + $hashalg_arg < $DATA > $sigfile 2>/dev/null || \ + fail "sign using $t / $h failed" + (printf "$sig_principal " ; cat $pubkey) > $OBJ/allowed_signers + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 || \ + fail "failed signature for $t / $h key" + done - (printf "$sig_principal " ; cat $pubkey) > $OBJ/allowed_signers + (printf "$sig_principal namespaces=\"$sig_namespace,whatever\" "; + cat $pubkey) > $OBJ/allowed_signers ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ -I $sig_principal -f $OBJ/allowed_signers \ < $DATA >/dev/null 2>&1 || \ - fail "failed signature for $t key" + fail "failed signature for $t key w/ limited namespace" (printf "$sig_principal namespaces=\"$sig_namespace,whatever\" "; cat $pubkey) > $OBJ/allowed_signers - ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + ${SSHKEYGEN} -q -Y verify -s $sigfile -n $sig_namespace \ -I $sig_principal -f $OBJ/allowed_signers \ - < $DATA >/dev/null 2>&1 || \ - fail "failed signature for $t key w/ limited namespace" + -O print-pubkey \ + < $DATA | cut -d' ' -f1-2 > ${OBJ}/${keybase}-fromsig.pub || \ + fail "failed signature for $t key w/ print-pubkey" + cut -d' ' -f1-2 ${OBJ}/${keybase}.pub > ${OBJ}/${keybase}-strip.pub + diff -r ${OBJ}/${keybase}-strip.pub ${OBJ}/${keybase}-fromsig.pub || \ + fail "print-pubkey differs from signature key" # Invalid option (printf "$sig_principal octopus " ; cat $pubkey) > $OBJ/allowed_signers @@ -106,6 +131,54 @@ for t in $SIGNKEYS; do < $DATA >/dev/null 2>&1 && \ fail "accepted signature for $t key with excluded namespace" + ( printf "$sig_principal " ; + printf "valid-after=\"19800101\",valid-before=\"19900101\" " ; + cat $pubkey) > $OBJ/allowed_signers + + # key lifespan valid + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19850101 \ + < $DATA >/dev/null 2>&1 || \ + fail "failed signature for $t key with valid expiry interval" + # key not yet valid + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19790101 \ + < $DATA >/dev/null 2>&1 && \ + fail "failed signature for $t not-yet-valid key" + # key expired + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19910101 \ + < $DATA >/dev/null 2>&1 && \ + fail "failed signature for $t with expired key" + # NB. assumes we're not running this test in the 1980s + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 && \ + fail "failed signature for $t with expired key" + + # key lifespan valid + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19850101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t key with valid expiry interval" + # key not yet valid + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19790101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t not-yet-valid key" + # key expired + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19990101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t with expired key" + # NB. assumes we're not running this test in the 1980s + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t with expired key" + # public key in revoked keys file cat $pubkey > $OBJ/revoked_keys (printf "$sig_principal namespaces=\"whatever\" " ; @@ -116,7 +189,7 @@ for t in $SIGNKEYS; do < $DATA >/dev/null 2>&1 && \ fail "accepted signature for $t key, but key is in revoked_keys" - # public key not revoked, but other are present in revoked_keysfile + # public key not revoked, but others are present in revoked_keysfile cat $WRONG > $OBJ/revoked_keys (printf "$sig_principal " ; cat $pubkey) > $OBJ/allowed_signers ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ @@ -135,6 +208,24 @@ for t in $SIGNKEYS; do < $DATA2 >/dev/null 2>&1 && \ fail "succeeded checking signature for $t key with invalid data" + # find-principals with valid public key + (printf "$sig_principal " ; cat $pubkey) > $OBJ/allowed_signers + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed to find valid principals in allowed_signers" + + # find-principals with wrong key not in allowed_signers + (printf "$sig_principal " ; cat $WRONG) > $OBJ/allowed_signers + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "succeeded finding principal with invalid signers file" + + # find-principals with a configured namespace but none on command-line + (printf "$sig_principal " ; + printf "namespaces=\"test1,test2\" "; + cat $pubkey) > $OBJ/allowed_signers + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed finding principal when namespaces are configured" + # Check signing keys using ssh-agent. ${SSHADD} -D >/dev/null 2>&1 # Remove all previously-loaded keys. ${SSHADD} ${privkey} > /dev/null 2>&1 || fail "ssh-add failed" @@ -152,23 +243,124 @@ for t in $SIGNKEYS; do # Move private key back mv ${privkey}.tmp ${privkey} + # Duplicate principals & keys in allowed_signers but with different validities + ( printf "$sig_principal " ; + printf "valid-after=\"19800101\",valid-before=\"19900101\" " ; + cat $pubkey; + printf "${sig_principal} " ; + printf "valid-after=\"19850101\",valid-before=\"20000101\" " ; + cat $pubkey) > $OBJ/allowed_signers + + # find-principals outside of any validity lifespan + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="20100101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "succeeded find-principals for $t verify-time outside of validity" + # find-principals matching only the first lifespan + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19830101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t verify-time within first span" + # find-principals matching both lifespans + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19880101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t verify-time within both spans" + # find-principals matching only the second lifespan + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19950101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t verify-time within second span" + + # verify outside of any validity lifespan + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -Overify-time="20100101" -I $sig_principal \ + -r $OBJ/revoked_keys -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 && \ + fail "succeeded verify for $t verify-time outside of validity" + # verify matching only the first lifespan + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -Overify-time="19830101" -I $sig_principal \ + -r $OBJ/revoked_keys -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 || \ + fail "failed verify for $t verify-time within first span" + # verify matching both lifespans + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -Overify-time="19880101" -I $sig_principal \ + -r $OBJ/revoked_keys -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 || \ + fail "failed verify for $t verify-time within both spans" + # verify matching only the second lifespan + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -Overify-time="19950101" -I $sig_principal \ + -r $OBJ/revoked_keys -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 || \ + fail "failed verify for $t verify-time within second span" + # Remaining tests are for certificates only. case "$keybase" in *-cert) ;; *) continue ;; esac + # Check key lifespan on find-principals when using the CA + ( printf "$sig_principal " ; + printf "cert-authority,valid-after=\"19800101\",valid-before=\"19900101\" "; + cat $CA_PUB) > $OBJ/allowed_signers + # key lifespan valid + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19850101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t key with valid expiry interval" + # key not yet valid + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19790101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t not-yet-valid key" + # key expired + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time="19990101" \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t with expired key" + # NB. assumes we're not running this test in the 1980s + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -f $OBJ/allowed_signers >/dev/null 2>&1 && \ + fail "failed find-principals for $t with expired key" # correct CA key (printf "$sig_principal cert-authority " ; cat $CA_PUB) > $OBJ/allowed_signers ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19850101 \ < $DATA >/dev/null 2>&1 || \ fail "failed signature for $t cert" + # find-principals + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time=19850101 \ + -f $OBJ/allowed_signers >/dev/null 2>&1 || \ + fail "failed find-principals for $t with ca key" + + # CA with wildcard principal + (printf "*@example.com cert-authority " ; + cat $CA_PUB) > $OBJ/allowed_signers + # find-principals CA with wildcard principal + ${SSHKEYGEN} -vvv -Y find-principals -s $sigfile \ + -Overify-time=19850101 \ + -f $OBJ/allowed_signers 2>/dev/null | \ + fgrep "$sig_principal" >/dev/null || \ + fail "failed find-principals for $t with ca key using wildcard principal" + + # verify CA with wildcard principal + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19850101 \ + < $DATA >/dev/null 2>&1 || \ + fail "failed signature for $t cert using wildcard principal" + # signing key listed as cert-authority - (printf "$sig_principal cert-authority" ; + (printf "$sig_principal cert-authority " ; cat $pubkey) > $OBJ/allowed_signers ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ -I $sig_principal -f $OBJ/allowed_signers \ @@ -183,12 +375,100 @@ for t in $SIGNKEYS; do fail "accepted signature for $t cert with CA not marked" # mismatch between cert principal and file - (printf "josef.k@example.com cert-authority" ; + (printf "josef.k@example.com cert-authority " ; cat $CA_PUB) > $OBJ/allowed_signers ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ -I $sig_principal -f $OBJ/allowed_signers \ < $DATA >/dev/null 2>&1 && \ fail "accepted signature for $t cert with wrong principal" + + # Cert valid but CA revoked + cat $CA_PUB > $OBJ/revoked_keys + (printf "$sig_principal " ; cat $pubkey) > $OBJ/allowed_signers + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -r $OBJ/revoked_keys \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t key, but CA key in revoked_keys" + + # Set lifespan of CA key and verify signed user certs behave accordingly + ( printf "$sig_principal " ; + printf "cert-authority,valid-after=\"19800101\",valid-before=\"19900101\" " ; + cat $CA_PUB) > $OBJ/allowed_signers + + # CA key lifespan valid + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19850101 \ + < $DATA >/dev/null 2>&1 >/dev/null 2>&1 || \ + fail "failed signature for $t key with valid CA expiry interval" + # CA lifespan is valid but user key not yet valid + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19810101 \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t key with valid CA expiry interval but not yet valid cert" + # CA lifespan is valid but user key expired + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19890101 \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t key with valid CA expiry interval but expired cert" + # CA key not yet valid + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19790101 \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t not-yet-valid CA key" + # CA key expired + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19910101 \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t with expired CA key" + # NB. assumes we're not running this test in the 1980s + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t with expired CA key" + + # Set lifespan of CA outside of the cert validity + ( printf "$sig_principal " ; + printf "cert-authority,valid-after=\"19800101\",valid-before=\"19820101\" " ; + cat $CA_PUB) > $OBJ/allowed_signers + # valid cert validity but expired CA + ${SSHKEYGEN} -vvv -Y verify -s $sigfile -n $sig_namespace \ + -I $sig_principal -f $OBJ/allowed_signers \ + -Overify-time=19840101 \ + < $DATA >/dev/null 2>&1 && \ + fail "accepted signature for $t key with expired CA but valid cert" + +done + +# Test key independant match-principals +( + printf "principal1 " ; cat $pubkey; + printf "princi* " ; cat $pubkey; + printf "unique " ; cat $pubkey; +) > $OBJ/allowed_signers + +verbose "$tid: match principals" +${SSHKEYGEN} -Y match-principals -f $OBJ/allowed_signers -I "unique" | \ + fgrep "unique" >/dev/null || \ + fail "faild to match static principal" + +${SSHKEYGEN} -Y match-principals -f $OBJ/allowed_signers -I "princip" | \ + fgrep "princi*" >/dev/null || \ + fail "faild to match wildcard principal" + +${SSHKEYGEN} -Y match-principals -f $OBJ/allowed_signers -I "principal1" | \ + fgrep -e "principal1" -e "princi*" >/dev/null || \ + fail "faild to match static and wildcard principal" +verbose "$tid: nomatch principals" +for x in princ prince unknown ; do + ${SSHKEYGEN} -Y match-principals -f $OBJ/allowed_signers \ + -I $x >/dev/null 2>&1 && \ + fail "succeeded to match unknown principal \"$x\"" done trace "kill agent" diff --git a/regress/test-exec.sh b/regress/test-exec.sh index 7cb7f1413ec..9fb02d1cbc8 100644 --- a/regress/test-exec.sh +++ b/regress/test-exec.sh @@ -1,46 +1,8 @@ -# $OpenBSD: test-exec.sh,v 1.79 2021/04/06 23:57:56 dtucker Exp $ +# $OpenBSD: test-exec.sh,v 1.89 2022/01/06 22:14:25 dtucker Exp $ # Placed in the Public Domain. #SUDO=sudo -# Unbreak GNU head(1) -_POSIX2_VERSION=199209 -export _POSIX2_VERSION - -case `uname -s 2>/dev/null` in -OSF1*) - BIN_SH=xpg4 - export BIN_SH - ;; -CYGWIN*) - os=cygwin - ;; -esac - -# If configure tells us to use a different egrep, create a wrapper function -# to call it. This means we don't need to change all the tests that depend -# on a good implementation. -if test "x${EGREP}" != "x"; then - egrep () -{ - ${EGREP} "$@" -} -fi - -if [ -x /usr/ucb/whoami ]; then - USER=`/usr/ucb/whoami` -elif whoami >/dev/null 2>&1; then - USER=`whoami` -elif logname >/dev/null 2>&1; then - USER=`logname` -else - USER=`id -un` -fi -if test -z "$LOGNAME"; then - LOGNAME="${USER}" - export LOGNAME -fi - if [ ! -x "$TEST_SSH_ELAPSED_TIMES" ]; then STARTTIME=`date '+%s'` fi @@ -77,6 +39,46 @@ else fi unset SSH_AUTH_SOCK +# Portable-specific settings. + +if [ -x /usr/ucb/whoami ]; then + USER=`/usr/ucb/whoami` +elif whoami >/dev/null 2>&1; then + USER=`whoami` +elif logname >/dev/null 2>&1; then + USER=`logname` +else + USER=`id -un` +fi +if test -z "$LOGNAME"; then + LOGNAME="${USER}" + export LOGNAME +fi + +# Unbreak GNU head(1) +_POSIX2_VERSION=199209 +export _POSIX2_VERSION + +case `uname -s 2>/dev/null` in +OSF1*) + BIN_SH=xpg4 + export BIN_SH + ;; +CYGWIN*) + os=cygwin + ;; +esac + +# If configure tells us to use a different egrep, create a wrapper function +# to call it. This means we don't need to change all the tests that depend +# on a good implementation. +if test "x${EGREP}" != "x"; then + egrep () +{ + ${EGREP} "$@" +} +fi + SRC=`dirname ${SCRIPT}` # defaults @@ -100,6 +102,7 @@ CONCH=conch # Tools used by multiple tests NC=$OBJ/netcat +OPENSSL_BIN="${OPENSSL_BIN:-openssl}" if [ "x$TEST_SSH_SSH" != "x" ]; then SSH="${TEST_SSH_SSH}" @@ -155,6 +158,9 @@ fi if [ "x$TEST_SSH_SK_HELPER" != "x" ]; then SSH_SK_HELPER="${TEST_SSH_SK_HELPER}" fi +if [ "x$TEST_SSH_OPENSSL" != "x" ]; then + OPENSSL_BIN="${TEST_SSH_OPENSSL}" +fi # Path to sshd must be absolute for rexec case "$SSHD" in @@ -250,10 +256,16 @@ fi >$TEST_REGRESS_LOGFILE # Create wrapper ssh with logging. We can't just specify "SSH=ssh -E..." -# because sftp and scp don't handle spaces in arguments. +# because sftp and scp don't handle spaces in arguments. scp and sftp like +# to use -q so we remove those to preserve our debug logging. In the rare +# instance where -q is desirable -qq is equivalent and is not removed. SSHLOGWRAP=$OBJ/ssh-log-wrapper.sh -echo "#!/bin/sh" > $SSHLOGWRAP -echo "exec ${SSH} -E${TEST_SSH_LOGFILE} "'"$@"' >>$SSHLOGWRAP +cat >$SSHLOGWRAP <>${TEST_SSH_LOGFILE} +for i in "\$@";do shift;case "\$i" in -q):;; *) set -- "\$@" "\$i";;esac;done +exec ${SSH} -E${TEST_SSH_LOGFILE} "\$@" +EOD chmod a+rx $OBJ/ssh-log-wrapper.sh REAL_SSH="$SSH" @@ -302,6 +314,12 @@ have_prog() jot() { awk "BEGIN { for (i = $2; i < $2 + $1; i++) { printf \"%d\n\", i } exit }" } +if [ ! -x "`which rev`" ]; then +rev() +{ + awk '{for (i=length; i>0; i--) printf "%s", substr($0, i, 1); print ""}' +} +fi # Check whether preprocessor symbols are defined in config.h. config_defined () @@ -323,6 +341,8 @@ md5 () { cksum elif have_prog sum; then sum + elif [ -x ${OPENSSL_BIN} ]; then + ${OPENSSL_BIN} md5 else wc -c fi @@ -449,6 +469,14 @@ fatal () exit $RESULT } +# Skip remaining tests in script. +skip () +{ + echo "SKIPPED: $@" + cleanup + exit $RESULT +} + RESULT=0 PIDFILE=$OBJ/pidfile @@ -528,7 +556,6 @@ Host * UserKnownHostsFile $OBJ/known_hosts PubkeyAuthentication yes ChallengeResponseAuthentication no - HostbasedAuthentication no PasswordAuthentication no BatchMode yes StrictHostKeyChecking yes @@ -547,6 +574,8 @@ if ! config_defined ENABLE_SK; then trace skipping sk-dummy elif [ -f "${SRC}/misc/sk-dummy/obj/sk-dummy.so" ] ; then SSH_SK_PROVIDER="${SRC}/misc/sk-dummy/obj/sk-dummy.so" +elif [ -f "${OBJ}/misc/sk-dummy/sk-dummy.so" ] ; then + SSH_SK_PROVIDER="${OBJ}/misc/sk-dummy/sk-dummy.so" elif [ -f "${SRC}/misc/sk-dummy/sk-dummy.so" ] ; then SSH_SK_PROVIDER="${SRC}/misc/sk-dummy/sk-dummy.so" fi @@ -595,10 +624,7 @@ for t in ${SSH_HOSTKEY_TYPES}; do ) >> $OBJ/known_hosts # use key as host key, too - $SUDO cp $OBJ/$t $OBJ/host.$t - # ensure proper file access permissions even in cygwin: - $SUDO chmod 600 $OBJ/$t $OBJ/host.$t - + (umask 077; $SUDO cp $OBJ/$t $OBJ/host.$t) echo HostKey $OBJ/host.$t >> $OBJ/sshd_config # don't use SUDO for proxy connect @@ -694,6 +720,24 @@ start_sshd () cleanup if [ "x$USE_VALGRIND" != "x" ]; then + # If there is an EXIT trap handler, invoke it now. + # Some tests set these to clean up processes such as ssh-agent. We + # need to wait for all valgrind processes to complete so we can check + # their logs, but since the EXIT traps are not invoked until + # test-exec.sh exits, waiting here will deadlock. + # This is not very portable but then neither is valgrind itself. + # As a bonus, dash (as used on the runners) has a "trap" that doesn't + # work in a pipeline (hence the temp file) or a subshell. + exithandler="" + trap >/tmp/trap.$$ && exithandler=$(cat /tmp/trap.$$ | \ + awk -F "'" '/EXIT$/{print $2}') + rm -f /tmp/trap.$$ + if [ "x${exithandler}" != "x" ]; then + verbose invoking EXIT trap handler early: ${exithandler} + eval "${exithandler}" + trap '' EXIT + fi + # wait for any running process to complete wait; sleep 1 VG_RESULTS=$(find $OBJ/valgrind-out -type f -print) diff --git a/regress/unittests/authopt/tests.c b/regress/unittests/authopt/tests.c index 8c51b3802aa..d9e190305e7 100644 --- a/regress/unittests/authopt/tests.c +++ b/regress/unittests/authopt/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.1 2018/03/03 03:16:17 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for keys options functions. @@ -9,9 +9,10 @@ #include "includes.h" #include -#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include @@ -270,6 +271,8 @@ test_authkeys_parse(void) } while (0) ARRAY_TEST("environment", "environment=\"foo=1\",environment=\"bar=2\"", env, nenv, "foo=1,bar=2"); + ARRAY_TEST("environment", "environment=\"foo=1\",environment=\"foo=2\"", + env, nenv, "foo=1"); ARRAY_TEST("permitopen", "permitopen=\"foo:123\",permitopen=\"bar:*\"", permitopen, npermitopen, "foo:123,bar:*"); #undef ARRAY_TEST diff --git a/regress/unittests/bitmap/tests.c b/regress/unittests/bitmap/tests.c index f66a4ce46a5..576b863f406 100644 --- a/regress/unittests/bitmap/tests.c +++ b/regress/unittests/bitmap/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.1 2015/01/15 07:36:28 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for bitmap.h bitmap API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include diff --git a/regress/unittests/conversion/tests.c b/regress/unittests/conversion/tests.c index bbdc5f5a7cb..5b526f7afa0 100644 --- a/regress/unittests/conversion/tests.c +++ b/regress/unittests/conversion/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.3 2021/01/18 11:43:34 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.4 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for conversions * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include diff --git a/regress/unittests/hostkeys/test_iterate.c b/regress/unittests/hostkeys/test_iterate.c index a5b17d7e405..84f26b5c72f 100644 --- a/regress/unittests/hostkeys/test_iterate.c +++ b/regress/unittests/hostkeys/test_iterate.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_iterate.c,v 1.7 2020/12/21 01:31:06 djm Exp $ */ +/* $OpenBSD: test_iterate.c,v 1.8 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for hostfile.h hostkeys_foreach() * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include diff --git a/regress/unittests/kex/test_kex.c b/regress/unittests/kex/test_kex.c index 06bd001aeae..c26761ee7c4 100644 --- a/regress/unittests/kex/test_kex.c +++ b/regress/unittests/kex/test_kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_kex.c,v 1.5 2020/12/29 01:02:15 djm Exp $ */ +/* $OpenBSD: test_kex.c,v 1.6 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test KEX * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include @@ -202,6 +201,8 @@ kex_tests(void) do_kex("diffie-hellman-group-exchange-sha1"); do_kex("diffie-hellman-group14-sha1"); do_kex("diffie-hellman-group1-sha1"); +# ifdef USE_SNTRUP761X25519 do_kex("sntrup761x25519-sha512@openssh.com"); +# endif /* USE_SNTRUP761X25519 */ #endif /* WITH_OPENSSL */ } diff --git a/regress/unittests/match/tests.c b/regress/unittests/match/tests.c index 4fefaf4f375..f00d1f9348f 100644 --- a/regress/unittests/match/tests.c +++ b/regress/unittests/match/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.7 2020/07/15 06:43:16 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.8 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for matching functions * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include diff --git a/regress/unittests/misc/Makefile b/regress/unittests/misc/Makefile index 0658c38c6a2..e8fe1a95313 100644 --- a/regress/unittests/misc/Makefile +++ b/regress/unittests/misc/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.6 2021/03/19 04:23:50 djm Exp $ +# $OpenBSD: Makefile,v 1.8 2022/02/04 07:53:44 dtucker Exp $ PROG=test_misc SRCS=tests.c @@ -6,6 +6,8 @@ SRCS+= test_convtime.c SRCS+= test_expand.c SRCS+= test_parse.c SRCS+= test_argv.c +SRCS+= test_strdelim.c +SRCS+= test_hpdelim.c # From usr.bin/ssh/Makefile.inc SRCS+= sshbuf.c diff --git a/regress/unittests/misc/test_argv.c b/regress/unittests/misc/test_argv.c index 7a28f64e5e5..682863e73ba 100644 --- a/regress/unittests/misc/test_argv.c +++ b/regress/unittests/misc/test_argv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_argv.c,v 1.1 2021/03/19 04:23:50 djm Exp $ */ +/* $OpenBSD: test_argv.c,v 1.4 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for misc argv handling functions. * @@ -8,9 +8,10 @@ #include "includes.h" #include -#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include @@ -21,16 +22,6 @@ void test_argv(void); -static void -free_argv(char **av, int ac) -{ - int i; - - for (i = 0; i < ac; i++) - free(av[i]); - free(av); -} - void test_argv(void) { @@ -39,102 +30,156 @@ test_argv(void) #define RESET_ARGV() \ do { \ - free_argv(av, ac); \ + argv_free(av, ac); \ av = NULL; \ ac = -1; \ } while (0) TEST_START("empty args"); - RESET_ARGV(); - ASSERT_INT_EQ(argv_split("", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 0); ASSERT_PTR_NE(av, NULL); ASSERT_PTR_EQ(av[0], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split(" ", &ac, &av), 0); + ASSERT_INT_EQ(argv_split(" ", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 0); ASSERT_PTR_NE(av, NULL); ASSERT_PTR_EQ(av[0], NULL); + RESET_ARGV(); TEST_DONE(); TEST_START("trivial args"); - RESET_ARGV(); - ASSERT_INT_EQ(argv_split("leamas", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("leamas", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "leamas"); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("smiley leamas", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("smiley leamas", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 2); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "smiley"); ASSERT_STRING_EQ(av[1], "leamas"); ASSERT_PTR_EQ(av[2], NULL); + RESET_ARGV(); TEST_DONE(); TEST_START("quoted"); - RESET_ARGV(); - ASSERT_INT_EQ(argv_split("\"smiley\"", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("\"smiley\"", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "smiley"); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("leamas \" smiley \"", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("leamas \" smiley \"", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 2); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "leamas"); ASSERT_STRING_EQ(av[1], " smiley "); ASSERT_PTR_EQ(av[2], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("\"smiley leamas\"", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("\"smiley leamas\"", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "smiley leamas"); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("smiley\" leamas\" liz", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("smiley\" leamas\" liz", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 2); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "smiley leamas"); ASSERT_STRING_EQ(av[1], "liz"); ASSERT_PTR_EQ(av[2], NULL); + RESET_ARGV(); TEST_DONE(); TEST_START("escaped"); - RESET_ARGV(); - ASSERT_INT_EQ(argv_split("\\\"smiley\\'", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("\\\"smiley\\'", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "\"smiley'"); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("'\\'smiley\\\"'", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("'\\'smiley\\\"'", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "'smiley\""); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("smiley\\'s leamas\\'", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("smiley\\'s leamas\\'", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 2); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "smiley's"); ASSERT_STRING_EQ(av[1], "leamas'"); ASSERT_PTR_EQ(av[2], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("leamas\\\\smiley", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("leamas\\\\smiley", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 1); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "leamas\\smiley"); ASSERT_PTR_EQ(av[1], NULL); RESET_ARGV(); - ASSERT_INT_EQ(argv_split("leamas\\\\ \\\\smiley", &ac, &av), 0); + ASSERT_INT_EQ(argv_split("leamas\\\\ \\\\smiley", &ac, &av, 0), 0); ASSERT_INT_EQ(ac, 2); ASSERT_PTR_NE(av, NULL); ASSERT_STRING_EQ(av[0], "leamas\\"); ASSERT_STRING_EQ(av[1], "\\smiley"); ASSERT_PTR_EQ(av[2], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("smiley\\ leamas", &ac, &av, 0), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "smiley leamas"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); + TEST_DONE(); + + TEST_START("quoted escaped"); + ASSERT_INT_EQ(argv_split("'smiley\\ leamas'", &ac, &av, 0), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "smiley\\ leamas"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("\"smiley\\ leamas\"", &ac, &av, 0), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "smiley\\ leamas"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); + TEST_DONE(); + + TEST_START("comments"); + ASSERT_INT_EQ(argv_split("# gold", &ac, &av, 0), 0); + ASSERT_INT_EQ(ac, 2); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "#"); + ASSERT_STRING_EQ(av[1], "gold"); + ASSERT_PTR_EQ(av[2], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("# gold", &ac, &av, 1), 0); + ASSERT_INT_EQ(ac, 0); + ASSERT_PTR_NE(av, NULL); + ASSERT_PTR_EQ(av[0], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("leamas#gold", &ac, &av, 1), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "leamas#gold"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("\"leamas # gold\"", &ac, &av, 1), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "leamas # gold"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); + ASSERT_INT_EQ(argv_split("\"leamas\"#gold", &ac, &av, 1), 0); + ASSERT_INT_EQ(ac, 1); + ASSERT_PTR_NE(av, NULL); + ASSERT_STRING_EQ(av[0], "leamas#gold"); + ASSERT_PTR_EQ(av[1], NULL); + RESET_ARGV(); TEST_DONE(); /* XXX test char *argv_assemble(int argc, char **argv) */ diff --git a/regress/unittests/misc/test_convtime.c b/regress/unittests/misc/test_convtime.c index 5be3ee43ad6..ef6fd77deda 100644 --- a/regress/unittests/misc/test_convtime.c +++ b/regress/unittests/misc/test_convtime.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_convtime.c,v 1.1 2021/03/19 03:25:01 djm Exp $ */ +/* $OpenBSD: test_convtime.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for misc time conversion functions. * @@ -8,9 +8,11 @@ #include "includes.h" #include -#include +#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include diff --git a/regress/unittests/misc/test_expand.c b/regress/unittests/misc/test_expand.c index c336fb0b2d0..6f2cd8adbed 100644 --- a/regress/unittests/misc/test_expand.c +++ b/regress/unittests/misc/test_expand.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_expand.c,v 1.2 2021/04/06 09:07:33 dtucker Exp $ */ +/* $OpenBSD: test_expand.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for misc string expansion functions. * @@ -8,9 +8,10 @@ #include "includes.h" #include -#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include diff --git a/regress/unittests/misc/test_hpdelim.c b/regress/unittests/misc/test_hpdelim.c new file mode 100644 index 00000000000..d423023dc3d --- /dev/null +++ b/regress/unittests/misc/test_hpdelim.c @@ -0,0 +1,82 @@ +/* $OpenBSD: test_hpdelim.c,v 1.2 2022/02/06 22:58:33 dtucker Exp $ */ +/* + * Regress test for misc hpdelim() and co + * + * Placed in the public domain. + */ + +#include "includes.h" + +#include +#include +#ifdef HAVE_STDINT_H +#include +#endif +#include +#include + +#include "../test_helper/test_helper.h" + +#include "log.h" +#include "misc.h" +#include "xmalloc.h" + +void test_hpdelim(void); + +void +test_hpdelim(void) +{ + char *orig, *str, *cp, *port; + +#define START_STRING(x) orig = str = xstrdup(x) +#define DONE_STRING() free(orig) + + TEST_START("hpdelim host only"); + START_STRING("host"); + cp = hpdelim(&str); + ASSERT_STRING_EQ(cp, "host"); + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("hpdelim :port"); + START_STRING(":1234"); + cp = hpdelim(&str); + ASSERT_STRING_EQ(cp, ""); + ASSERT_PTR_NE(str, NULL); + port = hpdelim(&str); + ASSERT_STRING_EQ(port, "1234"); + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("hpdelim host:port"); + START_STRING("host:1234"); + cp = hpdelim(&str); + ASSERT_STRING_EQ(cp, "host"); + ASSERT_PTR_NE(str, NULL); + port = hpdelim(&str); + ASSERT_STRING_EQ(port, "1234"); + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("hpdelim [host]:port"); + START_STRING("[::1]:1234"); + cp = hpdelim(&str); + ASSERT_STRING_EQ(cp, "[::1]"); + ASSERT_PTR_NE(str, NULL); + port = hpdelim(&str); + ASSERT_STRING_EQ(port, "1234"); + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("hpdelim missing ] error"); + START_STRING("[::1:1234"); + cp = hpdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + +} diff --git a/regress/unittests/misc/test_parse.c b/regress/unittests/misc/test_parse.c index dd99068d070..1f1ea31d149 100644 --- a/regress/unittests/misc/test_parse.c +++ b/regress/unittests/misc/test_parse.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_parse.c,v 1.1 2021/03/19 03:25:01 djm Exp $ */ +/* $OpenBSD: test_parse.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for misc user/host/URI parsing functions. * @@ -8,9 +8,10 @@ #include "includes.h" #include -#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include diff --git a/regress/unittests/misc/test_strdelim.c b/regress/unittests/misc/test_strdelim.c new file mode 100644 index 00000000000..f7bea4bfe8f --- /dev/null +++ b/regress/unittests/misc/test_strdelim.c @@ -0,0 +1,201 @@ +/* $OpenBSD: test_strdelim.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ +/* + * Regress test for misc strdelim() and co + * + * Placed in the public domain. + */ + +#include "includes.h" + +#include +#include +#ifdef HAVE_STDINT_H +#include +#endif +#include +#include + +#include "../test_helper/test_helper.h" + +#include "log.h" +#include "misc.h" +#include "xmalloc.h" + +void test_strdelim(void); + +void +test_strdelim(void) +{ + char *orig, *str, *cp; + +#define START_STRING(x) orig = str = xstrdup(x) +#define DONE_STRING() free(orig) + + TEST_START("empty"); + START_STRING(""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX arguable */ + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("whitespace"); + START_STRING(" "); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX better as NULL */ + ASSERT_STRING_EQ(str, ""); + DONE_STRING(); + TEST_DONE(); + + TEST_START("trivial"); + START_STRING("blob"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob"); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("trivial whitespace"); + START_STRING("blob "); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob"); + ASSERT_STRING_EQ(str, ""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX better as NULL */ + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("multi"); + START_STRING("blob1 blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + ASSERT_STRING_EQ(str, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + ASSERT_PTR_EQ(str, NULL); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("multi whitespace"); + START_STRING("blob1 blob2 "); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + ASSERT_STRING_EQ(str, "blob2 "); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX better as NULL */ + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("multi equals"); + START_STRING("blob1=blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + ASSERT_STRING_EQ(str, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + ASSERT_PTR_EQ(str, NULL); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("multi too many equals"); + START_STRING("blob1==blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); /* XXX better returning NULL early */ + ASSERT_STRING_EQ(str, "=blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); + ASSERT_STRING_EQ(str, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); /* XXX should (but can't) reject */ + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("multi equals strdelimw"); + START_STRING("blob1=blob2"); + cp = strdelimw(&str); + ASSERT_STRING_EQ(cp, "blob1=blob2"); + ASSERT_PTR_EQ(str, NULL); + cp = strdelimw(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("quoted"); + START_STRING("\"blob\""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX better as NULL */ + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("quoted multi"); + START_STRING("\"blob1\" blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + ASSERT_STRING_EQ(str, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + ASSERT_PTR_EQ(str, NULL); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("quoted multi reverse"); + START_STRING("blob1 \"blob2\""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + ASSERT_STRING_EQ(str, "\"blob2\""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + ASSERT_STRING_EQ(str, ""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); /* XXX better as NULL */ + ASSERT_PTR_EQ(str, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("quoted multi middle"); + START_STRING("blob1 \"blob2\" blob3"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob1"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob2"); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob3"); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("badquote"); + START_STRING("\"blob"); + cp = strdelim(&str); + ASSERT_PTR_EQ(cp, NULL); + DONE_STRING(); + TEST_DONE(); + + TEST_START("oops quote"); + START_STRING("\"blob\\\""); + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, "blob\\"); /* XXX wrong */ + cp = strdelim(&str); + ASSERT_STRING_EQ(cp, ""); + DONE_STRING(); + TEST_DONE(); + +} diff --git a/regress/unittests/misc/tests.c b/regress/unittests/misc/tests.c index 75013f481cb..d52490e3b3c 100644 --- a/regress/unittests/misc/tests.c +++ b/regress/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.6 2021/03/19 04:23:50 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.9 2022/02/04 07:53:44 dtucker Exp $ */ /* * Regress test for misc helper functions. * @@ -8,9 +8,10 @@ #include "includes.h" #include -#include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include @@ -23,6 +24,8 @@ void test_parse(void); void test_convtime(void); void test_expand(void); void test_argv(void); +void test_strdelim(void); +void test_hpdelim(void); void tests(void) @@ -31,4 +34,6 @@ tests(void) test_convtime(); test_expand(); test_argv(); + test_strdelim(); + test_hpdelim(); } diff --git a/regress/unittests/sshbuf/test_sshbuf.c b/regress/unittests/sshbuf/test_sshbuf.c index ee77d6934a4..e22b390fe33 100644 --- a/regress/unittests/sshbuf/test_sshbuf.c +++ b/regress/unittests/sshbuf/test_sshbuf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf.c,v 1.1 2014/04/30 05:32:00 djm Exp $ */ +/* $OpenBSD: test_sshbuf.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -9,7 +9,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include @@ -24,6 +23,10 @@ void sshbuf_tests(void); +#ifndef roundup +#define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) +#endif + void sshbuf_tests(void) { diff --git a/regress/unittests/sshbuf/test_sshbuf_fixed.c b/regress/unittests/sshbuf/test_sshbuf_fixed.c index df4925f7c6f..dff77f04215 100644 --- a/regress/unittests/sshbuf/test_sshbuf_fixed.c +++ b/regress/unittests/sshbuf/test_sshbuf_fixed.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_fixed.c,v 1.1 2014/04/30 05:32:00 djm Exp $ */ +/* $OpenBSD: test_sshbuf_fixed.c,v 1.2 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -9,7 +9,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include diff --git a/regress/unittests/sshbuf/test_sshbuf_fuzz.c b/regress/unittests/sshbuf/test_sshbuf_fuzz.c index e236c82f96f..c0b809dcde1 100644 --- a/regress/unittests/sshbuf/test_sshbuf_fuzz.c +++ b/regress/unittests/sshbuf/test_sshbuf_fuzz.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_fuzz.c,v 1.2 2018/10/17 23:28:05 djm Exp $ */ +/* $OpenBSD: test_sshbuf_fuzz.c,v 1.4 2021/12/18 06:53:59 anton Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include @@ -46,7 +45,7 @@ sshbuf_fuzz_tests(void) ASSERT_PTR_NE(p1, NULL); ASSERT_PTR_NE(sshbuf_ptr(p1), NULL); ASSERT_MEM_ZERO_NE(sshbuf_ptr(p1), sshbuf_len(p1)); - for (i = 0; i < NUM_FUZZ_TESTS; i++) { + for (i = 0; i < ntests; i++) { r = arc4random_uniform(10); if (r == 0) { /* 10% chance: small reserve */ diff --git a/regress/unittests/sshbuf/test_sshbuf_getput_basic.c b/regress/unittests/sshbuf/test_sshbuf_getput_basic.c index bea89881a46..3da413edd35 100644 --- a/regress/unittests/sshbuf/test_sshbuf_getput_basic.c +++ b/regress/unittests/sshbuf/test_sshbuf_getput_basic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_getput_basic.c,v 1.2 2019/07/14 23:33:19 djm Exp $ */ +/* $OpenBSD: test_sshbuf_getput_basic.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include diff --git a/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c b/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c index 492b3bdf062..e3620e97fe9 100644 --- a/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c +++ b/regress/unittests/sshbuf/test_sshbuf_getput_crypto.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_getput_crypto.c,v 1.2 2019/01/21 12:29:35 djm Exp $ */ +/* $OpenBSD: test_sshbuf_getput_crypto.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -10,7 +10,6 @@ #ifdef WITH_OPENSSL #include -#include #include #ifdef HAVE_STDINT_H # include diff --git a/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c b/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c index 1ca30be973c..3b4895895ef 100644 --- a/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c +++ b/regress/unittests/sshbuf/test_sshbuf_getput_fuzz.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_getput_fuzz.c,v 1.4 2019/01/21 12:29:35 djm Exp $ */ +/* $OpenBSD: test_sshbuf_getput_fuzz.c,v 1.5 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include @@ -16,11 +15,13 @@ #include #include +#ifdef WITH_OPENSSL #include #include #ifdef OPENSSL_HAS_NISTP256 # include #endif +#endif #include "../test_helper/test_helper.h" #include "ssherr.h" diff --git a/regress/unittests/sshbuf/test_sshbuf_misc.c b/regress/unittests/sshbuf/test_sshbuf_misc.c index c53db937f2f..249ecf23576 100644 --- a/regress/unittests/sshbuf/test_sshbuf_misc.c +++ b/regress/unittests/sshbuf/test_sshbuf_misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshbuf_misc.c,v 1.4 2019/07/16 22:16:49 djm Exp $ */ +/* $OpenBSD: test_sshbuf_misc.c,v 1.5 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H # include diff --git a/regress/unittests/sshkey/common.c b/regress/unittests/sshkey/common.c index effea578c09..51b0d92e1d0 100644 --- a/regress/unittests/sshkey/common.c +++ b/regress/unittests/sshkey/common.c @@ -1,4 +1,4 @@ -/* $OpenBSD: common.c,v 1.4 2020/01/26 00:09:50 djm Exp $ */ +/* $OpenBSD: common.c,v 1.5 2021/12/14 21:25:27 deraadt Exp $ */ /* * Helpers for key API tests * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #include #include diff --git a/regress/unittests/sshkey/test_file.c b/regress/unittests/sshkey/test_file.c index 7d767336ef4..497ab6dded1 100644 --- a/regress/unittests/sshkey/test_file.c +++ b/regress/unittests/sshkey/test_file.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_file.c,v 1.9 2020/06/19 03:48:49 djm Exp $ */ +/* $OpenBSD: test_file.c,v 1.10 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshkey.h key management API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #include #include @@ -422,6 +421,7 @@ sshkey_file_tests(void) sshkey_free(k1); +#ifdef ENABLE_SK #if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("parse ECDSA-SK from private"); buf = load_file("ecdsa_sk1"); @@ -552,6 +552,7 @@ sshkey_file_tests(void) TEST_DONE(); sshkey_free(k1); +#endif /* ENABLE_SK */ sshbuf_free(pw); diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index f111446a939..2fae19dcfe0 100644 --- a/regress/unittests/sshkey/test_fuzz.c +++ b/regress/unittests/sshkey/test_fuzz.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_fuzz.c,v 1.12 2020/08/27 03:55:22 djm Exp $ */ +/* $OpenBSD: test_fuzz.c,v 1.13 2021/12/14 21:25:27 deraadt Exp $ */ /* * Fuzz tests for key parsing * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #include #include @@ -19,6 +18,7 @@ #include #include +#ifdef WITH_OPENSSL #include #include #include @@ -26,6 +26,7 @@ #ifdef OPENSSL_HAS_NISTP256 # include #endif +#endif #include "../test_helper/test_helper.h" diff --git a/regress/unittests/sshkey/test_sshkey.c b/regress/unittests/sshkey/test_sshkey.c index 7dc20cc857a..982907ce7f0 100644 --- a/regress/unittests/sshkey/test_sshkey.c +++ b/regress/unittests/sshkey/test_sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: test_sshkey.c,v 1.21 2020/08/27 03:55:22 djm Exp $ */ +/* $OpenBSD: test_sshkey.c,v 1.22 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshkey.h key management API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #ifdef HAVE_STDINT_H #include @@ -16,12 +15,14 @@ #include #include +#ifdef WITH_OPENSSL #include #include #include #if defined(OPENSSL_HAS_ECC) && defined(OPENSSL_HAS_NISTP256) # include #endif +#endif #include "../test_helper/test_helper.h" diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index bf59d58d157..fdc3baeb763 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.2 2020/06/22 06:00:06 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.3 2021/12/14 21:25:27 deraadt Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -8,7 +8,6 @@ #include "includes.h" #include -#include #include #include #include @@ -19,8 +18,10 @@ #include #include +#ifdef WITH_OPENSSL #include #include +#endif #include "ssherr.h" #include "authfile.h" @@ -117,6 +118,7 @@ tests(void) check_sig("ed25519.pub", "ed25519.sig", msg, namespace); TEST_DONE(); +#ifdef ENABLE_SK #if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("check ECDSA-SK signature"); check_sig("ecdsa_sk.pub", "ecdsa_sk.sig", msg, namespace); @@ -133,6 +135,7 @@ tests(void) msg, namespace); TEST_DONE(); #endif +#endif /* ENABLE_SK */ sshbuf_free(msg); free(namespace); diff --git a/regress/unittests/sshsig/webauthn.html b/regress/unittests/sshsig/webauthn.html index 953041e61ec..5c9a32e9e47 100644 --- a/regress/unittests/sshsig/webauthn.html +++ b/regress/unittests/sshsig/webauthn.html @@ -37,6 +37,8 @@

attestationObject raw


 

attestationObject


+

key handle

+

 

authData raw


 

authData

@@ -45,6 +47,8 @@

SSH pubkey blob


 

SSH pubkey string


+

SSH private key string

+