From ecb2c02d994b3e21994f31a70ff911667c262f1f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 8 May 2020 05:13:14 +0000 Subject: upstream: fix compilation with DEBUG_KEXDH; bz#3160 ok dtucker@ OpenBSD-Commit-ID: 832e771948fb45f2270e8b8895aac36d176ba17a --- kexdh.c | 3 ++- sshd.c | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/kexdh.c b/kexdh.c index 67133e339..6e0159f9f 100644 --- a/kexdh.c +++ b/kexdh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kexdh.c,v 1.32 2019/01/21 10:40:11 djm Exp $ */ +/* $OpenBSD: kexdh.c,v 1.33 2020/05/08 05:13:14 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl. All rights reserved. * @@ -42,6 +42,7 @@ #include "digest.h" #include "ssherr.h" #include "dh.h" +#include "log.h" int kex_dh_keygen(struct kex *kex) diff --git a/sshd.c b/sshd.c index 6f8f11a3b..a345bae70 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.552 2020/03/13 04:01:57 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.553 2020/05/08 05:13:14 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2372,10 +2372,11 @@ do_ssh2_kex(struct ssh *ssh) #ifdef DEBUG_KEXDH /* send 1st encrypted/maced/compressed message */ - packet_start(SSH2_MSG_IGNORE); - packet_put_cstring("markus"); - packet_send(); - packet_write_wait(); + if ((r = sshpkt_start(ssh, SSH2_MSG_IGNORE)) != 0 || + (r = sshpkt_put_cstring(ssh, "markus")) != 0 || + (r = sshpkt_send(ssh)) != 0 || + (r = ssh_packet_write_wait(ssh)) != 0) + fatal("%s: send test: %s", __func__, ssh_err(r)); #endif debug("KEX done"); } -- cgit v1.2.3 From 5a442cec92c0efd6fffb4af84bf99c70af248ef3 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 11 May 2020 02:11:29 +0000 Subject: upstream: clarify role of FIDO tokens in multi-factor authentictation; mostly from Pedro Martelletto OpenBSD-Commit-ID: fbe05685a1f99c74b1baca7130c5a03c2df7c0ac --- PROTOCOL.u2f | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/PROTOCOL.u2f b/PROTOCOL.u2f index 917e669cd..fd4325b3a 100644 --- a/PROTOCOL.u2f +++ b/PROTOCOL.u2f @@ -39,6 +39,13 @@ the key handle be supplied for each signature operation. U2F tokens primarily use ECDSA signatures in the NIST-P256 field, though the FIDO2 standard specifies additional key types, including one based on Ed25519. +Use of U2F security keys does not automatically imply multi-factor +authentication. From sshd’s perspective, a security key constitutes a +single factor of authentication, even if protected by a PIN or biometric +authentication. To enable multi-factor authentication in ssh, please +refer to the AuthenticationMethods option in sshd_config(5). + + SSH U2F Key formats ------------------- -- cgit v1.2.3 From 829451815ec207e14bd54ff5cf7e22046816f042 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 12 May 2020 01:41:32 +0000 Subject: upstream: fix non-ASCII quote that snuck in; spotted by Gabriel Kihlman OpenBSD-Commit-ID: 04bcde311de2325d9e45730c744c8de079b49800 --- PROTOCOL.u2f | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROTOCOL.u2f b/PROTOCOL.u2f index fd4325b3a..69347e999 100644 --- a/PROTOCOL.u2f +++ b/PROTOCOL.u2f @@ -40,7 +40,7 @@ primarily use ECDSA signatures in the NIST-P256 field, though the FIDO2 standard specifies additional key types, including one based on Ed25519. Use of U2F security keys does not automatically imply multi-factor -authentication. From sshd’s perspective, a security key constitutes a +authentication. From sshd's perspective, a security key constitutes a single factor of authentication, even if protected by a PIN or biometric authentication. To enable multi-factor authentication in ssh, please refer to the AuthenticationMethods option in sshd_config(5). -- cgit v1.2.3 From 05a651400da6fbe12296c34e3d3bcf09f034fbbf Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 13 May 2020 09:52:41 +0000 Subject: upstream: when ordering the hostkey algorithms to request from a server, prefer certificate types if the known_hosts files contain a key marked as a @cert-authority; bz#3157 ok markus@ OpenBSD-Commit-ID: 8f194573e5bb7c01b69bbfaabc68f27c9fa5e0db --- hostfile.c | 14 +++++++++++++- hostfile.h | 3 ++- sshconnect2.c | 20 ++++++++++++++++---- 3 files changed, 31 insertions(+), 6 deletions(-) diff --git a/hostfile.c b/hostfile.c index a4a355972..a91dbbd94 100644 --- a/hostfile.c +++ b/hostfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.c,v 1.79 2020/03/06 18:25:12 markus Exp $ */ +/* $OpenBSD: hostfile.c,v 1.80 2020/05/13 09:52:41 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -406,6 +406,18 @@ lookup_key_in_hostkeys_by_type(struct hostkeys *hostkeys, int keytype, found) == HOST_FOUND); } +int +lookup_marker_in_hostkeys(struct hostkeys *hostkeys, int want_marker) +{ + u_int i; + + for (i = 0; i < hostkeys->num_entries; i++) { + if (hostkeys->entries[i].marker == (HostkeyMarker)want_marker) + return 1; + } + return 0; +} + static int write_host_entry(FILE *f, const char *host, const char *ip, const struct sshkey *key, int store_hash) diff --git a/hostfile.h b/hostfile.h index bd2104373..49fcbb7e8 100644 --- a/hostfile.h +++ b/hostfile.h @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.h,v 1.24 2015/02/16 22:08:57 djm Exp $ */ +/* $OpenBSD: hostfile.h,v 1.25 2020/05/13 09:52:41 djm Exp $ */ /* * Author: Tatu Ylonen @@ -39,6 +39,7 @@ HostStatus check_key_in_hostkeys(struct hostkeys *, struct sshkey *, const struct hostkey_entry **); int lookup_key_in_hostkeys_by_type(struct hostkeys *, int, const struct hostkey_entry **); +int lookup_marker_in_hostkeys(struct hostkeys *, int); int hostfile_read_key(char **, u_int *, struct sshkey *); int add_host_to_hostfile(const char *, const char *, diff --git a/sshconnect2.c b/sshconnect2.c index 1a6545edf..08b4f8550 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.321 2020/04/17 03:38:47 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.322 2020/05/13 09:52:41 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -135,11 +135,23 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port) while ((alg = strsep(&avail, ",")) && *alg != '\0') { if ((ktype = sshkey_type_from_name(alg)) == KEY_UNSPEC) fatal("%s: unknown alg %s", __func__, alg); + /* + * If we have a @cert-authority marker in known_hosts then + * prefer all certificate algorithms. + */ + if (sshkey_type_is_cert(ktype) && + lookup_marker_in_hostkeys(hostkeys, MRK_CA)) { + ALG_APPEND(first, alg); + continue; + } + /* If the key appears in known_hosts then prefer it */ if (lookup_key_in_hostkeys_by_type(hostkeys, - sshkey_type_plain(ktype), NULL)) + sshkey_type_plain(ktype), NULL)) { ALG_APPEND(first, alg); - else - ALG_APPEND(last, alg); + continue; + } + /* Otherwise, put it last */ + ALG_APPEND(last, alg); } #undef ALG_APPEND xasprintf(&ret, "%s%s%s", first, -- cgit v1.2.3 From f2d84f1b3fa68d77c99238d4c645d0266fae2a74 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 13 May 2020 09:55:57 +0000 Subject: upstream: preserve group/world read permission on known_hosts file across runs of "ssh-keygen -Rf /path". The old behaviour was to remove all rights for group/other. bz#3146 ok dtucker@ OpenBSD-Commit-ID: dc369d0e0b5dd826430c63fd5f4b269953448a8a --- ssh-keygen.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ssh-keygen.c b/ssh-keygen.c index 8c23a54cf..bcf1ece39 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.409 2020/05/02 07:19:43 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.410 2020/05/13 09:55:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -1292,6 +1292,7 @@ do_known_hosts(struct passwd *pw, const char *name, int find_host, int r, fd, oerrno, inplace = 0; struct known_hosts_ctx ctx; u_int foreach_options; + struct stat sb; if (!have_identity) { cp = tilde_expand_filename(_PATH_SSH_USER_HOSTFILE, pw->pw_uid); @@ -1301,6 +1302,8 @@ do_known_hosts(struct passwd *pw, const char *name, int find_host, free(cp); have_identity = 1; } + if (stat(identity_file, &sb) != 0) + fatal("Cannot stat %s: %s", identity_file, strerror(errno)); memset(&ctx, 0, sizeof(ctx)); ctx.out = stdout; @@ -1327,6 +1330,7 @@ do_known_hosts(struct passwd *pw, const char *name, int find_host, unlink(tmp); fatal("fdopen: %s", strerror(oerrno)); } + fchmod(fd, sb.st_mode & 0644); inplace = 1; } /* XXX support identity_file == "-" for stdin */ -- cgit v1.2.3 From 1e70dc3285fc9b4f6454975acb81e8702c23dd89 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 13 May 2020 09:57:17 +0000 Subject: upstream: always call fido_init(); previous behaviour only called fido_init() when SK_DEBUG was defined. Harmless with current libfido2, but this isn't guaranteed in the future. OpenBSD-Commit-ID: c7ea20ff2bcd98dd12015d748d3672d4f01f0864 --- sk-usbhid.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/sk-usbhid.c b/sk-usbhid.c index 25250824d..8097cc7f4 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -57,6 +57,12 @@ /* #define SK_DEBUG 1 */ +#ifdef SK_DEBUG +#define SSH_FIDO_INIT_ARG FIDO_DEBUG +#else +#define SSH_FIDO_INIT_ARG 0 +#endif + #define MAX_FIDO_DEVICES 256 /* Compatibility with OpenSSH 1.0.x */ @@ -459,9 +465,8 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, int r; char *device = NULL; -#ifdef SK_DEBUG - fido_init(FIDO_DEBUG); -#endif + fido_init(SSH_FIDO_INIT_ARG); + if (enroll_response == NULL) { skdebug(__func__, "enroll_response == NULL"); goto out; @@ -749,9 +754,7 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, int ret = SSH_SK_ERR_GENERAL; int r; -#ifdef SK_DEBUG - fido_init(FIDO_DEBUG); -#endif + fido_init(SSH_FIDO_INIT_ARG); if (sign_response == NULL) { skdebug(__func__, "sign_response == NULL"); @@ -995,6 +998,8 @@ sk_load_resident_keys(const char *pin, struct sk_option **options, *rksp = NULL; *nrksp = 0; + fido_init(SSH_FIDO_INIT_ARG); + if (check_sign_load_resident_options(options, &device) != 0) goto out; /* error already logged */ if (device != NULL) { -- cgit v1.2.3 From 2ad7b7e46408dbebf2a4efc4efd75a9544197d57 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 13 May 2020 10:08:02 +0000 Subject: upstream: Enable credProtect extension when generating a resident key. The FIDO 2.1 Client to Authenticator Protocol introduced a "credProtect" feature to better protect resident keys. This option allows (amone other possibilities) requiring a PIN prior to all operations that may retrieve the key handle. Patch by Pedro Martelletto; ok djm and markus OpenBSD-Commit-ID: 013bc06a577dcaa66be3913b7f183eb8cad87e73 --- sk-usbhid.c | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/sk-usbhid.c b/sk-usbhid.c index 8097cc7f4..4d64550c9 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -449,6 +449,43 @@ check_enroll_options(struct sk_option **options, char **devicep, return 0; } +static int +check_sk_extensions(fido_dev_t *dev, const char *ext, int *ret) +{ + fido_cbor_info_t *info; + char * const *ptr; + size_t len; + int r; + + *ret = 0; + + if (!fido_dev_is_fido2(dev)) { + skdebug(__func__, "device is not fido2"); + return 0; + } + if ((info = fido_cbor_info_new()) == NULL) { + skdebug(__func__, "fido_cbor_info_new failed"); + return -1; + } + if ((r = fido_dev_get_cbor_info(dev, info)) != FIDO_OK) { + skdebug(__func__, "fido_dev_get_cbor_info: %s", fido_strerr(r)); + fido_cbor_info_free(&info); + return -1; + } + ptr = fido_cbor_info_extensions_ptr(info); + len = fido_cbor_info_extensions_len(info); + for (size_t i = 0; i < len; i++) { + if (!strcmp(ptr[i], ext)) { + *ret = 1; + break; + } + } + fido_cbor_info_free(&info); + skdebug(__func__, "extension %s %s", ext, *ret ? "present" : "absent"); + + return 0; +} + int sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, const char *application, uint8_t flags, const char *pin, @@ -460,6 +497,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, uint8_t user_id[32]; struct sk_enroll_response *response = NULL; size_t len; + int credprot; int cose_alg; int ret = SSH_SK_ERR_GENERAL; int r; @@ -532,6 +570,25 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "fido_dev_open: %s", fido_strerr(r)); goto out; } + if ((flags & SSH_SK_RESIDENT_KEY) != 0) { + if (check_sk_extensions(dev, "credProtect", &credprot) < 0) { + skdebug(__func__, "check_sk_extensions failed"); + goto out; + } + if (credprot == 0) { + skdebug(__func__, "refusing to create unprotected " + "resident key"); + ret = SSH_SK_ERR_UNSUPPORTED; + goto out; + } + if ((r = fido_cred_set_prot(cred, + FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID)) != FIDO_OK) { + skdebug(__func__, "fido_cred_set_prot: %s", + fido_strerr(r)); + ret = fidoerr_to_skerr(r); + goto out; + } + } if ((r = fido_dev_make_cred(dev, cred, pin)) != FIDO_OK) { skdebug(__func__, "fido_dev_make_cred: %s", fido_strerr(r)); ret = fidoerr_to_skerr(r); -- cgit v1.2.3 From d7d753e2979f2d3c904b03a08d30856cd2a6e892 Mon Sep 17 00:00:00 2001 From: "deraadt@openbsd.org" Date: Wed, 13 May 2020 22:38:41 +0000 Subject: upstream: we are still aiming for pre-C99 ... OpenBSD-Commit-ID: a240fc9cbe60bc4e6c3d24d022eb4ab01fe1cb38 --- sk-usbhid.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sk-usbhid.c b/sk-usbhid.c index 4d64550c9..2a573caa2 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -454,7 +454,7 @@ check_sk_extensions(fido_dev_t *dev, const char *ext, int *ret) { fido_cbor_info_t *info; char * const *ptr; - size_t len; + size_t len, i; int r; *ret = 0; @@ -474,7 +474,7 @@ check_sk_extensions(fido_dev_t *dev, const char *ext, int *ret) } ptr = fido_cbor_info_extensions_ptr(info); len = fido_cbor_info_extensions_len(info); - for (size_t i = 0; i < len; i++) { + for (i = 0; i < len; i++) { if (!strcmp(ptr[i], ext)) { *ret = 1; break; -- cgit v1.2.3 From af8b16fb2cce880341c0ee570ceb0d84104bdcc0 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 15 May 2020 03:57:33 +0000 Subject: upstream: fix off-by-one error that caused sftp downloads to make one more concurrent request that desired. This prevented using sftp(1) in unpipelined request/response mode, which is useful when debugging. Patch from Stephen Goetze in bz#3054 OpenBSD-Commit-ID: 41b394ebe57037dbc43bdd0eef21ff0511191f28 --- sftp-client.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sftp-client.c b/sftp-client.c index 72f7fff7a..b8e131be6 100644 --- a/sftp-client.c +++ b/sftp-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-client.c,v 1.135 2019/10/04 04:31:59 djm Exp $ */ +/* $OpenBSD: sftp-client.c,v 1.136 2020/05/15 03:57:33 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1415,7 +1415,7 @@ do_download(struct sftp_conn *conn, const char *remote_path, (unsigned long long)offset, num_req); max_req = 1; - } else if (max_req <= conn->num_requests) { + } else if (max_req < conn->num_requests) { ++max_req; } } -- cgit v1.2.3 From 4b307faf2fb0e63e51a550b37652f7f972df9676 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Fri, 15 May 2020 08:34:03 +0000 Subject: upstream: sshd listener must not block if reexecd sshd exits in write(2) on config_s[0] if the forked child exits early before finishing recv_rexec_state (e.g. with fatal()) because config_s[1] stays open in the parent. this prevents the parent from accepting new connections. ok djm, deraadt OpenBSD-Commit-ID: 92ccfeb939ccd55bda914dc3fe84582158c4a9ef --- sshd.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sshd.c b/sshd.c index a345bae70..4151e11fe 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.553 2020/05/08 05:13:14 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.554 2020/05/15 08:34:03 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1270,6 +1270,7 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) startup_pipe = -1; pid = getpid(); if (rexec_flag) { + close(config_s[1]); send_rexec_state(config_s[0], cfg); close(config_s[0]); } @@ -1328,9 +1329,9 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) close(startup_p[1]); if (rexec_flag) { + close(config_s[1]); send_rexec_state(config_s[0], cfg); close(config_s[0]); - close(config_s[1]); } close(*newsock); -- cgit v1.2.3 From 2a63ce5cd6d0e782783bf721462239b03757dd49 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 18 May 2020 04:29:35 +0000 Subject: upstream: avoid possible NULL deref; from Pedro Martelletto OpenBSD-Commit-ID: e6099c3fbb70aa67eb106e84d8b43f1fa919b721 --- ssh-keygen.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ssh-keygen.c b/ssh-keygen.c index bcf1ece39..405903319 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.410 2020/05/13 09:55:57 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.411 2020/05/18 04:29:35 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -2954,14 +2954,16 @@ do_download_sk(const char *skprovider, const char *device) &keys, &nkeys)) != 0) { if (i == 0 && r == SSH_ERR_KEY_WRONG_PASSPHRASE) continue; - freezero(pin, strlen(pin)); + if (pin != NULL) + freezero(pin, strlen(pin)); error("Unable to load resident keys: %s", ssh_err(r)); return -1; } } if (nkeys == 0) logit("No keys to download"); - freezero(pin, strlen(pin)); + if (pin != NULL) + freezero(pin, strlen(pin)); for (i = 0; i < nkeys; i++) { if (keys[i]->type != KEY_ECDSA_SK && -- cgit v1.2.3 From 756c6f66aee83a5862a6f936a316f761532f3320 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 26 May 2020 01:06:52 +0000 Subject: upstream: add fmt_timeframe() (from bgpd) to format a time interval in a human- friendly format. Switch copyright for this file from BSD to MIT to make it easier to add Henning's copyright for this function. ok markus@ OpenBSD-Commit-ID: 414a831c662df7e68893e5233e86f2cac081ccf9 --- misc.c | 71 +++++++++++++++++++++++++++++++++++++++++++++++------------------- misc.h | 3 ++- 2 files changed, 53 insertions(+), 21 deletions(-) diff --git a/misc.c b/misc.c index 554ceb0b1..3e661ac77 100644 --- a/misc.c +++ b/misc.c @@ -1,29 +1,23 @@ -/* $OpenBSD: misc.c,v 1.147 2020/04/25 06:59:36 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.148 2020/05/26 01:06:52 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. - * Copyright (c) 2005,2006 Damien Miller. All rights reserved. + * Copyright (c) 2005-2020 Damien Miller. All rights reserved. + * Copyright (c) 2004 Henning Brauer * - * 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. + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. * - * 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. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ + #include "includes.h" #include @@ -551,6 +545,43 @@ convtime(const char *s) return total; } +#define TF_BUFS 8 +#define TF_LEN 9 + +const char * +fmt_timeframe(time_t t) +{ + char *buf; + static char tfbuf[TF_BUFS][TF_LEN]; /* ring buffer */ + static int idx = 0; + unsigned int sec, min, hrs, day; + unsigned long long week; + + buf = tfbuf[idx++]; + if (idx == TF_BUFS) + idx = 0; + + week = t; + + sec = week % 60; + week /= 60; + min = week % 60; + week /= 60; + hrs = week % 24; + week /= 24; + day = week % 7; + week /= 7; + + if (week > 0) + snprintf(buf, TF_LEN, "%02lluw%01ud%02uh", week, day, hrs); + else if (day > 0) + snprintf(buf, TF_LEN, "%01ud%02uh%02um", day, hrs, min); + else + snprintf(buf, TF_LEN, "%02u:%02u:%02u", hrs, min, sec); + + return (buf); +} + /* * Returns a standardized host+port identifier string. * Caller must free returned string. diff --git a/misc.h b/misc.h index 4a05db2da..8e4234b65 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.84 2020/01/24 23:54:40 djm Exp $ */ +/* $OpenBSD: misc.h,v 1.85 2020/05/26 01:06:52 djm Exp $ */ /* * Author: Tatu Ylonen @@ -66,6 +66,7 @@ int parse_user_host_path(const char *, char **, char **, char **); int parse_user_host_port(const char *, char **, char **, int *); int parse_uri(const char *, const char *, char **, char **, int *, char **); long convtime(const char *); +const char *fmt_timeframe(time_t t); char *tilde_expand_filename(const char *, uid_t); char *percent_expand(const char *, ...) __attribute__((__sentinel__)); char *tohex(const void *, size_t); -- cgit v1.2.3 From 9c5f64b6cb3a68b99915202d318b842c6c76cf14 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 26 May 2020 01:09:05 +0000 Subject: upstream: improve logging for MaxStartups connection throttling: have sshd log when it starts and stops throttling and periodically while in this state. bz#3055 ok markus@ OpenBSD-Commit-ID: 2e07a09a62ab45d790d3d2d714f8cc09a9ac7ab9 --- sshd.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 64 insertions(+), 24 deletions(-) diff --git a/sshd.c b/sshd.c index 4151e11fe..0f8ddebe5 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.554 2020/05/15 08:34:03 markus Exp $ */ +/* $OpenBSD: sshd.c,v 1.555 2020/05/26 01:09:05 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -829,7 +829,7 @@ notify_hostkeys(struct ssh *ssh) * all connections are dropped for startups > max_startups */ static int -drop_connection(int startups) +should_drop_connection(int startups) { int p, r; @@ -846,10 +846,68 @@ drop_connection(int startups) p += options.max_startups_rate; r = arc4random_uniform(100); - debug("drop_connection: p %d, r %d", p, r); + debug("%s: p %d, r %d", __func__, p, r); return (r < p) ? 1 : 0; } +/* + * Check whether connection should be accepted by MaxStartups. + * Returns 0 if the connection is accepted. If the connection is refused, + * returns 1 and attempts to send notification to client. + * Logs when the MaxStartups condition is entered or exited, and periodically + * while in that state. + */ +static int +drop_connection(int sock, int startups) +{ + char *laddr, *raddr; + const char msg[] = "Exceeded MaxStartups\r\n"; + static time_t last_drop, first_drop; + static u_int ndropped; + LogLevel drop_level = SYSLOG_LEVEL_VERBOSE; + time_t now; + + now = monotime(); + if (!should_drop_connection(startups)) { + if (last_drop != 0 && + startups < options.max_startups_begin - 1) { + /* XXX maybe need better hysteresis here */ + logit("exited MaxStartups throttling after %s, " + "%u connections dropped", + fmt_timeframe(now - first_drop), ndropped); + last_drop = 0; + } + return 0; + } + +#define SSHD_MAXSTARTUPS_LOG_INTERVAL (5 * 60) + if (last_drop == 0) { + error("beginning MaxStartups throttling"); + drop_level = SYSLOG_LEVEL_INFO; + first_drop = now; + ndropped = 0; + } else if (last_drop + SSHD_MAXSTARTUPS_LOG_INTERVAL < now) { + /* Periodic logs */ + error("in MaxStartups throttling for %s, " + "%u connections dropped", + fmt_timeframe(now - first_drop), ndropped + 1); + drop_level = SYSLOG_LEVEL_INFO; + } + last_drop = now; + ndropped++; + + laddr = get_local_ipaddr(sock); + raddr = get_peer_ipaddr(sock); + do_log2(drop_level, "drop connection #%d from [%s]:%d on [%s]:%d " + "past MaxStartups", startups, raddr, get_peer_port(sock), + laddr, get_local_port(sock)); + free(laddr); + free(raddr); + /* best-effort notification to client */ + (void)write(sock, msg, sizeof(msg) - 1); + return 1; +} + static void usage(void) { @@ -1206,27 +1264,9 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) usleep(100 * 1000); continue; } - if (unset_nonblock(*newsock) == -1) { - close(*newsock); - continue; - } - if (drop_connection(startups) == 1) { - char *laddr = get_local_ipaddr(*newsock); - char *raddr = get_peer_ipaddr(*newsock); - char msg[] = "Exceeded MaxStartups\r\n"; - - verbose("drop connection #%d from [%s]:%d " - "on [%s]:%d past MaxStartups", startups, - raddr, get_peer_port(*newsock), - laddr, get_local_port(*newsock)); - free(laddr); - free(raddr); - /* best-effort notification to client */ - (void)write(*newsock, msg, strlen(msg)); - close(*newsock); - continue; - } - if (pipe(startup_p) == -1) { + if (unset_nonblock(*newsock) == -1 || + drop_connection(*newsock, startups) || + pipe(startup_p) == -1) { close(*newsock); continue; } -- cgit v1.2.3 From 0c111eb84efba7c2a38b2cc3278901a0123161b9 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 26 May 2020 01:26:58 +0000 Subject: upstream: Restrict ssh-agent from signing web challenges for FIDO keys. When signing messages in ssh-agent using a FIDO key that has an application string that does not start with "ssh:", ensure that the message being signed is one of the forms expected for the SSH protocol (currently pubkey authentication and sshsig signatures). This prevents ssh-agent forwarding on a host that has FIDO keys attached granting the ability for the remote side to sign challenges for web authentication using those keys too. Note that the converse case of web browsers signing SSH challenges is already precluded because no web RP can have the "ssh:" prefix in the application string that we require. ok markus@ OpenBSD-Commit-ID: 9ab6012574ed0352d2f097d307f4a988222d1b19 --- ssh-agent.c | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 100 insertions(+), 10 deletions(-) diff --git a/ssh-agent.c b/ssh-agent.c index e081413b8..effffffed 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.257 2020/03/06 18:28:27 markus Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.258 2020/05/26 01:26:58 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -77,6 +77,7 @@ #include "xmalloc.h" #include "ssh.h" +#include "ssh2.h" #include "sshbuf.h" #include "sshkey.h" #include "authfd.h" @@ -167,6 +168,9 @@ static long lifetime = 0; static int fingerprint_hash = SSH_FP_HASH_DEFAULT; +/* Refuse signing of non-SSH messages for web-origin FIDO keys */ +static int restrict_websafe = 1; + static void close_socket(SocketEntry *e) { @@ -282,6 +286,80 @@ agent_decode_alg(struct sshkey *key, u_int flags) return NULL; } +/* + * This function inspects a message to be signed by a FIDO key that has a + * web-like application string (i.e. one that does not begin with "ssh:". + * It checks that the message is one of those expected for SSH operations + * (pubkey userauth, sshsig, CA key signing) to exclude signing challenges + * for the web. + */ +static int +check_websafe_message_contents(struct sshkey *key, + const u_char *msg, size_t len) +{ + int matched = 0; + struct sshbuf *b; + u_char m, n; + char *cp1 = NULL, *cp2 = NULL; + int r; + struct sshkey *mkey = NULL; + + if ((b = sshbuf_from(msg, len)) == NULL) + fatal("%s: sshbuf_new", __func__); + + /* SSH userauth request */ + if ((r = sshbuf_get_string_direct(b, NULL, NULL)) == 0 && /* sess_id */ + (r = sshbuf_get_u8(b, &m)) == 0 && /* SSH2_MSG_USERAUTH_REQUEST */ + (r = sshbuf_get_cstring(b, NULL, NULL)) == 0 && /* server user */ + (r = sshbuf_get_cstring(b, &cp1, NULL)) == 0 && /* service */ + (r = sshbuf_get_cstring(b, &cp2, NULL)) == 0 && /* method */ + (r = sshbuf_get_u8(b, &n)) == 0 && /* sig-follows */ + (r = sshbuf_get_cstring(b, NULL, NULL)) == 0 && /* alg */ + (r = sshkey_froms(b, &mkey)) == 0 && /* key */ + sshbuf_len(b) == 0) { + debug("%s: parsed userauth", __func__); + if (m == SSH2_MSG_USERAUTH_REQUEST && n == 1 && + strcmp(cp1, "ssh-connection") == 0 && + strcmp(cp2, "publickey") == 0 && + sshkey_equal(key, mkey)) { + debug("%s: well formed userauth", __func__); + matched = 1; + } + } + free(cp1); + free(cp2); + sshkey_free(mkey); + sshbuf_free(b); + if (matched) + return 1; + + if ((b = sshbuf_from(msg, len)) == NULL) + fatal("%s: sshbuf_new", __func__); + cp1 = cp2 = NULL; + mkey = NULL; + + /* SSHSIG */ + if ((r = sshbuf_cmp(b, 0, "SSHSIG", 6)) == 0 && + (r = sshbuf_consume(b, 6)) == 0 && + (r = sshbuf_get_cstring(b, NULL, NULL)) == 0 && /* namespace */ + (r = sshbuf_get_string_direct(b, NULL, NULL)) == 0 && /* reserved */ + (r = sshbuf_get_cstring(b, NULL, NULL)) == 0 && /* hashalg */ + (r = sshbuf_get_string_direct(b, NULL, NULL)) == 0 && /* H(msg) */ + sshbuf_len(b) == 0) { + debug("%s: parsed sshsig", __func__); + matched = 1; + } + + sshbuf_free(b); + if (matched) + return 1; + + /* XXX CA signature operation */ + + error("web-origin key attempting to sign non-SSH message"); + return 0; +} + /* ssh2 only */ static void process_sign_request2(SocketEntry *e) @@ -314,14 +392,20 @@ process_sign_request2(SocketEntry *e) verbose("%s: user refused key", __func__); goto send; } - if (sshkey_is_sk(id->key) && - (id->key->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { - if ((fp = sshkey_fingerprint(key, SSH_FP_HASH_DEFAULT, - SSH_FP_DEFAULT)) == NULL) - fatal("%s: fingerprint failed", __func__); - notifier = notify_start(0, - "Confirm user presence for key %s %s", - sshkey_type(id->key), fp); + if (sshkey_is_sk(id->key)) { + if (strncmp(id->key->sk_application, "ssh:", 4) != 0 && + !check_websafe_message_contents(key, data, dlen)) { + /* error already logged */ + goto send; + } + if ((id->key->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { + if ((fp = sshkey_fingerprint(key, SSH_FP_HASH_DEFAULT, + SSH_FP_DEFAULT)) == NULL) + fatal("%s: fingerprint failed", __func__); + notifier = notify_start(0, + "Confirm user presence for key %s %s", + sshkey_type(id->key), fp); + } } if ((r = sshkey_sign(id->key, &signature, &slen, data, dlen, agent_decode_alg(key, flags), @@ -1212,7 +1296,7 @@ main(int ac, char **av) __progname = ssh_get_progname(av[0]); seed_rng(); - while ((ch = getopt(ac, av, "cDdksE:a:P:t:")) != -1) { + while ((ch = getopt(ac, av, "cDdksE:a:O:P:t:")) != -1) { switch (ch) { case 'E': fingerprint_hash = ssh_digest_alg_by_name(optarg); @@ -1227,6 +1311,12 @@ main(int ac, char **av) case 'k': k_flag++; break; + case 'O': + if (strcmp(optarg, "no-restrict-websafe") == 0) + restrict_websafe = 0; + else + fatal("Unknown -O option"); + break; case 'P': if (provider_whitelist != NULL) fatal("-P option already specified"); -- cgit v1.2.3 From 4be563994c0cbe9856e7dd3078909f41beae4a9c Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 26 May 2020 01:59:46 +0000 Subject: upstream: fix memleak of signature; from Pedro Martelletto OpenBSD-Commit-ID: d0a6eb07e77c001427d738b220dd024ddc64b2bb --- ssh-sk-helper.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ssh-sk-helper.c b/ssh-sk-helper.c index 2f93ad716..8f92f4e23 100644 --- a/ssh-sk-helper.c +++ b/ssh-sk-helper.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-sk-helper.c,v 1.9 2020/01/25 23:13:09 djm Exp $ */ +/* $OpenBSD: ssh-sk-helper.c,v 1.10 2020/05/26 01:59:46 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -93,12 +93,12 @@ process_sign(struct sshbuf *req) { int r = SSH_ERR_INTERNAL_ERROR; struct sshbuf *resp, *kbuf; - struct sshkey *key; + struct sshkey *key = NULL; uint32_t compat; const u_char *message; - u_char *sig; - size_t msglen, siglen; - char *provider, *pin; + u_char *sig = NULL; + size_t msglen, siglen = 0; + char *provider = NULL, *pin = NULL; if ((r = sshbuf_froms(req, &kbuf)) != 0 || (r = sshbuf_get_cstring(req, &provider, NULL)) != 0 || @@ -134,8 +134,11 @@ process_sign(struct sshbuf *req) (r = sshbuf_put_string(resp, sig, siglen)) != 0) fatal("%s: buffer error: %s", __progname, ssh_err(r)); out: + sshkey_free(key); sshbuf_free(kbuf); free(provider); + if (sig != NULL) + freezero(sig, siglen); if (pin != NULL) freezero(pin, strlen(pin)); return resp; -- cgit v1.2.3 From 47faad8f794516c33864d866aa1b55d88416f94c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Wed, 27 May 2020 23:26:23 +1000 Subject: Document that libfido2 >= 1.4.0 is needed. --- INSTALL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index 443ff9f3f..789be4823 100644 --- a/INSTALL +++ b/INSTALL @@ -120,7 +120,7 @@ the dependency (.depend) file using "make depend", which requires the libfido2: libfido2 allows the use of hardware security keys over USB. libfido2 -in turn depends on libcbor. +in turn depends on libcbor. libfido2 >= 1.4.0 is needed. https://github.com/Yubico/libfido2 https://github.com/pjk/libcbor -- cgit v1.2.3 From 47adfdc07f4f8ea0064a1495500244de08d311ed Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 27 May 2020 22:35:19 +0000 Subject: upstream: two new tests for Include in sshd_config, checking whether Port directives are processed correctly and handling of Include directives that appear before Match. Both tests currently fail. bz#3122 and bz#3169 - patch from Jakub Jelen OpenBSD-Regress-ID: 8ad5a4a385a63f0a1c59c59c763ff029b45715df --- regress/servcfginclude.sh | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/regress/servcfginclude.sh b/regress/servcfginclude.sh index b25c8faa8..b6a9a248f 100644 --- a/regress/servcfginclude.sh +++ b/regress/servcfginclude.sh @@ -146,9 +146,43 @@ Include _EOF trace "disallow invalid with no argument" -${SUDO} ${REAL_SSHD} -f $OBJ/sshd_config.i.x \ +${SUDO} ${REAL_SSHD} -f $OBJ/sshd_config.i.x -T \ -C "host=x,user=test,addr=127.0.0.1" 2>/dev/null && \ fail "sshd allowed Include with no argument" +# Ensure the Include before any Match block works as expected (bug #3122) +cat > $OBJ/sshd_config.i << _EOF +Banner /xx +HostKey $OBJ/host.ssh-ed25519 +Include $OBJ/sshd_config.i.2 +Match host a + Banner /aaaa +_EOF +cat > $OBJ/sshd_config.i.2 << _EOF +Match host a + Banner /aa +_EOF + +trace "Include before match blocks" +trial a /aa "included file before match blocks is properly evaluated" + +# Port in included file is correctly interpretted (bug #3169) +cat > $OBJ/sshd_config.i << _EOF +Include $OBJ/sshd_config.i.2 +Port 7722 +_EOF +cat > $OBJ/sshd_config.i.2 << _EOF +HostKey $OBJ/host.ssh-ed25519 +_EOF + +trace "Port after included files" +${SUDO} ${REAL_SSHD} -f $OBJ/sshd_config.i -T \ + -C "host=x,user=test,addr=127.0.0.1" > $OBJ/sshd_config.out || \ + fail "failed to parse Port after included files" +_port=`grep -i '^port ' $OBJ/sshd_config.out | awk '{print $2}'` +if test "x7722" != "x$_port" ; then + fail "The Port in included file was intertepretted wrongly. Expected 7722, got $_port" +fi + # cleanup rm -f $OBJ/sshd_config.i $OBJ/sshd_config.i.* $OBJ/sshd_config.out -- cgit v1.2.3 From 16ea1fdbe736648f79a827219134331f8d9844fb Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 27 May 2020 21:25:18 +0000 Subject: upstream: fix crash in recallocarray when deleting SendEnv variables; spotted by & ok sthen@ OpenBSD-Commit-ID: b881e8e849edeec5082b5c0a87d8d7cff091a8fd --- readconf.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/readconf.c b/readconf.c index 2afcbaeca..63ed7fd5f 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.329 2020/04/24 03:33:21 dtucker Exp $ */ +/* $OpenBSD: readconf.c,v 1.330 2020/05/27 21:25:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -735,7 +735,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, static void rm_env(Options *options, const char *arg, const char *filename, int linenum) { - int i, j; + int i, j, onum_send_env = options->num_send_env; char *cp; /* Remove an environment variable */ @@ -758,6 +758,11 @@ rm_env(Options *options, const char *arg, const char *filename, int linenum) options->num_send_env--; /* NB. don't increment i */ } + if (onum_send_env != options->num_send_env) { + options->send_env = xrecallocarray(options->send_env, + onum_send_env, options->num_send_env, + sizeof(*options->send_env)); + } } /* -- cgit v1.2.3 From 0a9a611619b0a1fecd0195ec86a9885f5d681c84 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 27 May 2020 21:59:11 +0000 Subject: upstream: Do not call process_queued_listen_addrs() for every included file from sshd_config; patch from Jakub Jelen OpenBSD-Commit-ID: 0ff603d6f06a7fab4881f12503b53024799d0a49 --- servconf.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/servconf.c b/servconf.c index ba0a92c7b..391f4e827 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.363 2020/04/17 03:30:05 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.364 2020/05/27 21:59:11 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -74,8 +74,8 @@ static void add_listen_addr(ServerOptions *, const char *, const char *, int); static void add_one_listen_addr(ServerOptions *, const char *, const char *, int); -void parse_server_config_depth(ServerOptions *options, const char *filename, - struct sshbuf *conf, struct include_list *includes, +static void parse_server_config_depth(ServerOptions *options, + const char *filename, struct sshbuf *conf, struct include_list *includes, struct connection_info *connectinfo, int flags, int *activep, int depth); /* Use of privilege separation or not */ @@ -2570,7 +2570,7 @@ copy_set_server_options(ServerOptions *dst, ServerOptions *src, int preauth) #undef M_CP_STRARRAYOPT #define SERVCONF_MAX_DEPTH 16 -void +static void parse_server_config_depth(ServerOptions *options, const char *filename, struct sshbuf *conf, struct include_list *includes, struct connection_info *connectinfo, int flags, int *activep, int depth) @@ -2596,7 +2596,6 @@ parse_server_config_depth(ServerOptions *options, const char *filename, if (bad_options > 0) fatal("%s: terminating, %d bad configuration options", filename, bad_options); - process_queued_listen_addrs(options); } void @@ -2607,6 +2606,7 @@ parse_server_config(ServerOptions *options, const char *filename, int active = connectinfo ? 0 : 1; parse_server_config_depth(options, filename, conf, includes, connectinfo, 0, &active, 0); + process_queued_listen_addrs(options); } static const char * -- cgit v1.2.3 From 7af1e92cd289b7eaa9a683e9a6f2fddd98f37a01 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 27 May 2020 22:37:53 +0000 Subject: upstream: fix Include before Match in sshd_config; bz#3122 patch from Jakub Jelen OpenBSD-Commit-ID: 1b0aaf135fe6732b5d326946042665dd3beba5f4 --- servconf.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/servconf.c b/servconf.c index 391f4e827..bd8df7fce 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.364 2020/05/27 21:59:11 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.365 2020/05/27 22:37:53 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -550,6 +550,7 @@ typedef enum { #define SSHCFG_MATCH 0x02 /* allowed inside a Match section */ #define SSHCFG_ALL (SSHCFG_GLOBAL|SSHCFG_MATCH) #define SSHCFG_NEVERMATCH 0x04 /* Match never matches; internal only */ +#define SSHCFG_MATCH_ONLY 0x08 /* Match only in conditional blocks; internal only */ /* Textual representation of the tokens. */ static struct { @@ -1259,7 +1260,7 @@ static const struct multistate multistate_tcpfwd[] = { static int process_server_config_line_depth(ServerOptions *options, char *line, const char *filename, int linenum, int *activep, - struct connection_info *connectinfo, int inc_flags, int depth, + struct connection_info *connectinfo, int *inc_flags, int depth, struct include_list *includes) { char ch, *cp, ***chararrayptr, **charptr, *arg, *arg2, *p; @@ -2002,7 +2003,9 @@ process_server_config_line_depth(ServerOptions *options, char *line, parse_server_config_depth(options, item->filename, item->contents, includes, connectinfo, - (oactive ? 0 : SSHCFG_NEVERMATCH), + (*inc_flags & SSHCFG_MATCH_ONLY + ? SSHCFG_MATCH_ONLY : (oactive + ? 0 : SSHCFG_NEVERMATCH)), activep, depth + 1); } found = 1; @@ -2050,7 +2053,9 @@ process_server_config_line_depth(ServerOptions *options, char *line, parse_server_config_depth(options, item->filename, item->contents, includes, connectinfo, - (oactive ? 0 : SSHCFG_NEVERMATCH), + (*inc_flags & SSHCFG_MATCH_ONLY + ? SSHCFG_MATCH_ONLY : (oactive + ? 0 : SSHCFG_NEVERMATCH)), activep, depth + 1); *activep = oactive; TAILQ_INSERT_TAIL(includes, item, entry); @@ -2068,11 +2073,14 @@ process_server_config_line_depth(ServerOptions *options, char *line, if (cmdline) fatal("Match directive not supported as a command-line " "option"); - value = match_cfg_line(&cp, linenum, connectinfo); + value = match_cfg_line(&cp, linenum, + (*inc_flags & SSHCFG_NEVERMATCH ? NULL : connectinfo)); if (value < 0) fatal("%s line %d: Bad Match condition", filename, linenum); - *activep = (inc_flags & SSHCFG_NEVERMATCH) ? 0 : value; + *activep = (*inc_flags & SSHCFG_NEVERMATCH) ? 0 : value; + /* The MATCH_ONLY is applicable only until the first match block */ + *inc_flags &= ~SSHCFG_MATCH_ONLY; break; case sPermitListen: @@ -2375,8 +2383,10 @@ process_server_config_line(ServerOptions *options, char *line, const char *filename, int linenum, int *activep, struct connection_info *connectinfo, struct include_list *includes) { + int inc_flags = 0; + return process_server_config_line_depth(options, line, filename, - linenum, activep, connectinfo, 0, 0, includes); + linenum, activep, connectinfo, &inc_flags, 0, includes); } @@ -2581,14 +2591,15 @@ parse_server_config_depth(ServerOptions *options, const char *filename, if (depth < 0 || depth > SERVCONF_MAX_DEPTH) fatal("Too many recursive configuration includes"); - debug2("%s: config %s len %zu", __func__, filename, sshbuf_len(conf)); + debug2("%s: config %s len %zu%s", __func__, filename, sshbuf_len(conf), + (flags & SSHCFG_NEVERMATCH ? " [checking syntax only]" : "")); if ((obuf = cbuf = sshbuf_dup_string(conf)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); linenum = 1; while ((cp = strsep(&cbuf, "\n")) != NULL) { if (process_server_config_line_depth(options, cp, - filename, linenum++, activep, connectinfo, flags, + filename, linenum++, activep, connectinfo, &flags, depth, includes) != 0) bad_options++; } @@ -2605,7 +2616,7 @@ parse_server_config(ServerOptions *options, const char *filename, { int active = connectinfo ? 0 : 1; parse_server_config_depth(options, filename, conf, includes, - connectinfo, 0, &active, 0); + connectinfo, (connectinfo ? SSHCFG_MATCH_ONLY : 0), &active, 0); process_queued_listen_addrs(options); } -- cgit v1.2.3 From 1001dd148ed7c57bccf56afb40cb77482ea343a6 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 01:20:46 +0000 Subject: upstream: Fix multiplier in convtime when handling seconds after other units. bz#3171, spotted by ronf at timeheart.net, ok djm@. OpenBSD-Commit-ID: 95b7a848e1083974a65fbb6ccb381d438e1dd5be --- misc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/misc.c b/misc.c index 3e661ac77..5a34107f8 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.148 2020/05/26 01:06:52 djm Exp $ */ +/* $OpenBSD: misc.c,v 1.149 2020/05/29 01:20:46 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -487,7 +487,7 @@ a2tun(const char *s, int *remote) long convtime(const char *s) { - long total, secs, multiplier = 1; + long total, secs, multiplier; const char *p; char *endp; @@ -505,6 +505,7 @@ convtime(const char *s) secs < 0) return -1; + multiplier = 1; switch (*endp++) { case '\0': endp--; -- cgit v1.2.3 From 224418cf55611869a4ace1b8b07bba0dff77a9c3 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 29 May 2020 03:11:54 +0000 Subject: upstream: fix exit status for downloading of FIDO resident keys; from Pedro Martelletto, ok markus@ OpenBSD-Commit-ID: 0da77dc24a1084798eedd83c39a002a9d231faef --- ssh-keygen.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ssh-keygen.c b/ssh-keygen.c index 405903319..bdc29e00a 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.411 2020/05/18 04:29:35 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.412 2020/05/29 03:11:54 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -2938,7 +2938,7 @@ do_download_sk(const char *skprovider, const char *device) { struct sshkey **keys; size_t nkeys, i; - int r, ok = -1; + int r, ret = -1; char *fp, *pin = NULL, *pass = NULL, *path, *pubpath; const char *ext; @@ -3022,13 +3022,13 @@ do_download_sk(const char *skprovider, const char *device) } if (i >= nkeys) - ok = 0; /* success */ + ret = 0; /* success */ if (pass != NULL) freezero(pass, strlen(pass)); for (i = 0; i < nkeys; i++) sshkey_free(keys[i]); free(keys); - return ok ? 0 : -1; + return ret; } static void -- cgit v1.2.3 From 4c607244054a036ad3b2449a6cb4c15feb846a76 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 29 May 2020 03:14:02 +0000 Subject: upstream: fix compilation on !HAVE_DLOPEN platforms; stub function was not updated to match API change. From Dale Rahn via beck@ ok markus@ OpenBSD-Commit-ID: 2b8d054afe34c9ac85e417dae702ef981917b836 --- ssh-pkcs11.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ssh-pkcs11.c b/ssh-pkcs11.c index ec0e91865..f495883d1 100644 --- a/ssh-pkcs11.c +++ b/ssh-pkcs11.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-pkcs11.c,v 1.49 2020/03/13 04:16:27 djm Exp $ */ +/* $OpenBSD: ssh-pkcs11.c,v 1.50 2020/05/29 03:14:02 djm Exp $ */ /* * Copyright (c) 2010 Markus Friedl. All rights reserved. * Copyright (c) 2014 Pedro Martelletto. All rights reserved. @@ -1859,7 +1859,8 @@ pkcs11_init(int interactive) } int -pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp) +pkcs11_add_provider(char *provider_id, char *pin, struct sshkey ***keyp, + char ***labelsp) { error("%s: dlopen() not supported", __func__); return (-1); -- cgit v1.2.3 From e18435fec124b4c08eb6bbbbee9693dc04f4befb Mon Sep 17 00:00:00 2001 From: jca Date: Sat, 14 Feb 2015 22:40:22 +0000 Subject: partial sync of regress/netcat.c with upstream Support for nc -T on IPv6 addresses. ok sthen@ --- regress/netcat.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/regress/netcat.c b/regress/netcat.c index fe94dd908..50934f3f2 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.126 2014/10/30 16:08:31 tedu Exp $ */ +/* $OpenBSD: netcat.c,v 1.127 2015/02/14 22:40:22 jca Exp $ */ /* * Copyright (c) 2001 Eric Jackson * @@ -133,7 +133,7 @@ int udptest(int); int unix_bind(char *); int unix_connect(char *); int unix_listen(char *); -void set_common_sockopts(int); +void set_common_sockopts(int, int); int map_tos(char *, int *); void report_connect(const struct sockaddr *, socklen_t); void usage(int); @@ -648,7 +648,7 @@ remote_connect(const char *host, const char *port, struct addrinfo hints) freeaddrinfo(ares); } - set_common_sockopts(s); + set_common_sockopts(s, res0->ai_family); if (timeout_connect(s, res0->ai_addr, res0->ai_addrlen) == 0) break; @@ -748,7 +748,7 @@ local_listen(char *host, char *port, struct addrinfo hints) if (ret == -1) err(1, "setsockopt SO_REUSEADDR"); #endif - set_common_sockopts(s); + set_common_sockopts(s, res0->ai_family); if (bind(s, (struct sockaddr *)res0->ai_addr, res0->ai_addrlen) == 0) @@ -1168,7 +1168,7 @@ udptest(int s) } void -set_common_sockopts(int s) +set_common_sockopts(int s, int af) { int x = 1; @@ -1186,8 +1186,17 @@ set_common_sockopts(int s) } #ifdef IP_TOS if (Tflag != -1) { - if (setsockopt(s, IPPROTO_IP, IP_TOS, - &Tflag, sizeof(Tflag)) == -1) + int proto, option; + + if (af == AF_INET6) { + proto = IPPROTO_IPV6; + option = IPV6_TCLASS; + } else { + proto = IPPROTO_IP; + option = IP_TOS; + } + + if (setsockopt(s, proto, option, &Tflag, sizeof(Tflag)) == -1) err(1, "set IP ToS"); } #endif -- cgit v1.2.3 From bf3893dddd35e16def04bf48ed2ee1ad695b8f82 Mon Sep 17 00:00:00 2001 From: tobias Date: Thu, 26 Mar 2015 10:36:03 +0000 Subject: partial sync of regress/netcat.c with upstream Check for short writes in fdpass(). Clean up while at it. ok djm --- regress/netcat.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/regress/netcat.c b/regress/netcat.c index 50934f3f2..30e49ac01 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.127 2015/02/14 22:40:22 jca Exp $ */ +/* $OpenBSD: netcat.c,v 1.128 2015/03/26 10:36:03 tobias Exp $ */ /* * Copyright (c) 2001 Eric Jackson * @@ -1034,17 +1034,17 @@ fdpass(int nfd) bzero(&pfd, sizeof(pfd)); pfd.fd = STDOUT_FILENO; + pfd.events = POLLOUT; for (;;) { r = sendmsg(STDOUT_FILENO, &msg, 0); if (r == -1) { if (errno == EAGAIN || errno == EINTR) { - pfd.events = POLLOUT; if (poll(&pfd, 1, -1) == -1) err(1, "poll"); continue; } err(1, "sendmsg"); - } else if (r == -1) + } else if (r != 1) errx(1, "sendmsg: unexpected return value %zd", r); else break; -- cgit v1.2.3 From d6a81050ace2630b06c3c6dd39bb4eef5d1043f8 Mon Sep 17 00:00:00 2001 From: tobias Date: Thu, 26 Mar 2015 21:22:50 +0000 Subject: partial sync of regress/netcat.c with upstream The code in socks.c writes multiple times in a row to a socket. If the socket becomes invalid between these calls (e.g. connection closed), write will throw SIGPIPE. With this patch, SIGPIPE is ignored so we can handle write's -1 return value (errno will be EPIPE). Ultimately, it leads to program exit, too -- but with nicer error message. :) with input by and ok djm --- regress/netcat.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/regress/netcat.c b/regress/netcat.c index 30e49ac01..dff2364cc 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.128 2015/03/26 10:36:03 tobias Exp $ */ +/* $OpenBSD: netcat.c,v 1.129 2015/03/26 21:22:50 tobias Exp $ */ /* * Copyright (c) 2001 Eric Jackson * @@ -44,14 +44,15 @@ #include #include +#include +#include #include +#include #include #include #include #include #include -#include -#include #include "atomicio.h" #ifdef HAVE_POLL_H @@ -162,6 +163,8 @@ main(int argc, char *argv[]) uport = NULL; sv = NULL; + signal(SIGPIPE, SIG_IGN); + while ((ch = getopt(argc, argv, "46DdFhI:i:klNnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) { switch (ch) { -- cgit v1.2.3 From 0f04c8467f589f85a523e19fd684c4f6c4ed9482 Mon Sep 17 00:00:00 2001 From: chl Date: Sun, 26 Jul 2015 19:12:28 +0000 Subject: partial sync of regress/netcat.c with upstream remove unused variable ok tedu@ --- regress/netcat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regress/netcat.c b/regress/netcat.c index dff2364cc..92ff98939 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.129 2015/03/26 21:22:50 tobias Exp $ */ +/* $OpenBSD: netcat.c,v 1.130 2015/07/26 19:12:28 chl Exp $ */ /* * Copyright (c) 2001 Eric Jackson * -- cgit v1.2.3 From 0b0d219313bf9239ca043f20b1a095db0245588f Mon Sep 17 00:00:00 2001 From: sobrado Date: Thu, 3 Sep 2015 23:06:28 +0000 Subject: partial sync of regress/netcat.c with upstream synchronize synopsis and usage. --- regress/netcat.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/regress/netcat.c b/regress/netcat.c index 92ff98939..24395263f 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: netcat.c,v 1.130 2015/07/26 19:12:28 chl Exp $ */ +/* $OpenBSD: netcat.c,v 1.131 2015/09/03 23:06:28 sobrado Exp $ */ /* * Copyright (c) 2001 Eric Jackson * @@ -1333,7 +1333,7 @@ usage(int ret) { fprintf(stderr, "usage: nc [-46DdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n" - "\t [-P proxy_username] [-p source_port] [-s source] [-T ToS]\n" + "\t [-P proxy_username] [-p source_port] [-s source] [-T toskeyword]\n" "\t [-V rtable] [-w timeout] [-X proxy_protocol]\n" "\t [-x proxy_address[:port]] [destination] [port]\n"); if (ret) -- cgit v1.2.3 From c9bab1d3a9e183cef3a3412f57880a0374cc8cb2 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 29 May 2020 14:49:16 +1000 Subject: depend --- .depend | 95 +++++++++++++++++++++++++++++++---------------------------------- 1 file changed, 46 insertions(+), 49 deletions(-) diff --git a/.depend b/.depend index 7670d2ad3..67983e0cf 100644 --- a/.depend +++ b/.depend @@ -1,40 +1,41 @@ # Automatically generated by makedepend. # Run "make depend" to rebuild. +# DO NOT DELETE 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 match.h log.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 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 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 +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 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 authfile.h +auth.o: monitor_wrap.h ssherr.h compat.h channels.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 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 sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h canohost.h monitor_wrap.h pathnames.h auth2-hostbased.o: ssherr.h match.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 misc.h servconf.h ssherr.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 misc.h servconf.h compat.h ssh2.h ssherr.h monitor_wrap.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 sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h ssherr.h monitor_wrap.h 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: canohost.h monitor_wrap.h authfile.h match.h ssherr.h channels.h session.h sk-api.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 sshbuf.h log.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h uidswap.h auth-options.h -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 +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 sshbuf.h misc.h servconf.h compat.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.h pathnames.h ssherr.h monitor_wrap.h 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 atomicio.h misc.h ssherr.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 authfile.h misc.h atomicio.h sshkey.h sshbuf.h ssherr.h krl.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 sshbuf.h sshkey.h misc.h servconf.h uidswap.h hostfile.h auth.h auth-pam.h audit.h loginrec.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 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 authfile.h -auth.o: monitor_wrap.h ssherr.h compat.h channels.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 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 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 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-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-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 sshbuf.h ssherr.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 @@ -48,7 +49,6 @@ digest-libc.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-c 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 dispatch.h packet.h openbsd-compat/sys-queue.h compat.h ssherr.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 -# DO NOT DELETE 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 @@ -61,41 +61,39 @@ gss-serv.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-comp 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 misc.h ssherr.h digest.h hmac.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 match.h +kex.o: misc.h monitor.h ssherr.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 packet.h openbsd-compat/sys-queue.h dispatch.h ssh2.h sshbuf.h digest.h ssherr.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 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 -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 match.h -kex.o: misc.h monitor.h ssherr.h sshbuf.h digest.h kexsntrup4591761x25519.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/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 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 -libressl-api-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 +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 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 atomicio.h packet.h openbsd-compat/sys-queue.h dispatch.h canohost.h auth.h auth-pam.h audit.h sshbuf.h ssherr.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 -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 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 ssh.h sshbuf.h ssherr.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 -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 monitor_fdpass.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 misc.h servconf.h monitor.h monitor_wrap.h monitor_fdpass.h compat.h ssh2.h authfd.h match.h ssherr.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 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_wrap.o: loginrec.h auth-options.h packet.h dispatch.h log.h monitor.h monitor_wrap.h atomicio.h monitor_fdpass.h misc.h channels.h session.h servconf.h ssherr.h 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 ssh.h ssh2.h pathnames.h misc.h match.h sshbuf.h channels.h msg.h packet.h dispatch.h monitor_fdpass.h sshpty.h sshkey.h readconf.h clientloop.h ssherr.h 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 -openssl-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 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 canohost.h misc.h channels.h ssh.h packet.o: packet.h dispatch.h ssherr.h sshbuf.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.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.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 misc.h servconf.h openbsd-compat/sys-queue.h sshkey.h hostfile.h auth.h auth-pam.h audit.h loginrec.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 +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 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 @@ -110,7 +108,6 @@ sandbox-rlimit.o: includes.h config.h defines.h platform.h openbsd-compat/openbs 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 -sbtest.o: ssh-sandbox.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 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 sshbuf.h misc.h servconf.h compat.h pathnames.h cipher.h cipher-chachapoly.h chacha.h poly1305.h cipher-aesctr.h rijndael.h sshkey.h kex.h @@ -122,14 +119,33 @@ session.o: rijndael.h hostfile.h auth.h auth-pam.h audit.h loginrec.h auth-optio 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.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.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 pathnames.h misc.h utf8.h sftp.h ssherr.h sshbuf.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 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 pathnames.h misc.h utf8.h sftp.h ssherr.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 sntrup4591761.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/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 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 sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h ssh-sk.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 sshbuf.h sshkey.h authfd.h compat.h log.h misc.h digest.h ssherr.h match.h msg.h pathnames.h ssh-pkcs11.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 misc.h digest.h ssherr.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 sshbuf.h sshkey.h ssherr.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 sshbuf.h sshkey.h ssherr.h ssh.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 misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h sshsig.h ssh-sk.h sk-api.h +ssh-keyscan.o: atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.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 +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 sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h ssherr.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 misc.h sshkey.h authfd.h ssh-pkcs11.h ssherr.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 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 sshkey.h authfd.h misc.h sshbuf.h msg.h uidswap.h ssherr.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.o: sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h crypto_api.h sshpty.h match.h msg.h version.h ssherr.h myproposal.h utf8.h 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 authfile.h misc.h ssh_api.o: version.h myproposal.h ssherr.h sshbuf.h openbsd-compat/openssl-compat.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 @@ -137,47 +153,28 @@ sshbuf-getput-crypto.o: includes.h config.h defines.h platform.h openbsd-compat/ 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 -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 misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h ssh-sk.h sk-api.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 misc.h readconf.h atomicio.h dns.h monitor_fdpass.h ssh2.h version.h authfile.h ssherr.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 misc.h readconf.h match.h canohost.h msg.h pathnames.h uidswap.h hostfile.h ssherr.h utf8.h ssh-sk.h sk-api.h sshd.o: cipher-aesctr.h rijndael.h digest.h sshkey.h kex.h mac.h crypto_api.h myproposal.h authfile.h pathnames.h atomicio.h canohost.h hostfile.h auth.h auth-pam.h audit.h loginrec.h authfd.h msg.h channels.h session.h monitor.h monitor_wrap.h ssh-sandbox.h auth-options.h version.h ssherr.h 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 sshbuf.h misc.h match.h servconf.h uidswap.h compat.h cipher.h cipher-chachapoly.h chacha.h poly1305.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.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.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-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 sshbuf.h sshkey.h ssherr.h ssh.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 sshbuf.h sshkey.h ssherr.h ssh.h digest.h ssherr.o: ssherr.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 misc.h match.h hostfile.h dns.h ssh.h ssh2.h ssherr.h ssh-pkcs11.h atomicio.h krl.h digest.h utf8.h authfd.h sshsig.h ssh-sk.h sk-api.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 -ssh-keyscan.o: atomicio.h misc.h hostfile.h ssherr.h ssh_api.h ssh2.h dns.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 -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 sshkey.h ssh.h ssh2.h misc.h sshbuf.h authfile.h msg.h canohost.h pathnames.h readconf.h uidswap.h 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 -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.o: sshkey.h authfd.h authfile.h pathnames.h clientloop.h log.h misc.h readconf.h sshconnect.h kex.h mac.h crypto_api.h sshpty.h match.h msg.h version.h ssherr.h myproposal.h utf8.h -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 misc.h sshkey.h authfd.h ssh-pkcs11.h ssherr.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 sshkey.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 misc.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 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 misc.h sshbuf.h sshsig.h ssherr.h sshkey.h match.h digest.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 sshkey.h authfd.h misc.h sshbuf.h msg.h uidswap.h ssherr.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 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 -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 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 compat.h sshbuf.h ssherr.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 uidswap.h xmalloc.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 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 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_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_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 -- cgit v1.2.3 From 4a1b46e6d032608b7ec00ae51c4e25b82f460b05 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 04:25:40 +0000 Subject: upstream: Allow some keywords to expand shell-style ${ENV} environment variables on the client side. The supported keywords are CertificateFile, ControlPath, IdentityAgent and IdentityFile, plus LocalForward and RemoteForward when used for Unix domain socket paths. This would for example allow forwarding of Unix domain socket paths that change at runtime. bz#3140, ok djm@ OpenBSD-Commit-ID: a4a2e801fc2d4df2fe0e58f50d9c81b03822dffa --- misc.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++++----------- misc.h | 5 +- readconf.c | 20 ++++++-- ssh.c | 40 ++++++++++++--- ssh_config.5 | 53 +++++++++++++++---- 5 files changed, 230 insertions(+), 53 deletions(-) diff --git a/misc.c b/misc.c index 5a34107f8..3ec02d79e 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.149 2020/05/29 01:20:46 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.150 2020/05/29 04:25:40 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -1084,45 +1084,90 @@ tilde_expand_filename(const char *filename, uid_t uid) } /* - * Expand a string with a set of %[char] escapes. A number of escapes may be - * specified as (char *escape_chars, char *replacement) pairs. The list must - * be terminated by a NULL escape_char. Returns replaced string in memory - * allocated by xmalloc. + * Expand a string with a set of %[char] escapes and/or ${ENVIRONMENT} + * substitutions. A number of escapes may be specified as + * (char *escape_chars, char *replacement) pairs. The list must be terminated + * by a NULL escape_char. Returns replaced string in memory allocated by + * xmalloc which the caller must free. */ -char * -percent_expand(const char *string, ...) +static char * +vdollar_percent_expand(int *parseerror, int dollar, int percent, + const char *string, va_list ap) { #define EXPAND_MAX_KEYS 16 - u_int num_keys, i; + u_int num_keys = 0, i; struct { const char *key; const char *repl; } keys[EXPAND_MAX_KEYS]; struct sshbuf *buf; - va_list ap; - int r; - char *ret; + int r, missingvar = 0; + char *ret = NULL, *var, *varend, *val; + size_t len; if ((buf = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); - - /* Gather keys */ - va_start(ap, string); - for (num_keys = 0; num_keys < EXPAND_MAX_KEYS; num_keys++) { - keys[num_keys].key = va_arg(ap, char *); - if (keys[num_keys].key == NULL) - break; - keys[num_keys].repl = va_arg(ap, char *); - if (keys[num_keys].repl == NULL) - fatal("%s: NULL replacement", __func__); + if (parseerror == NULL) + fatal("%s: null parseerror arg", __func__); + *parseerror = 1; + + /* Gather keys if we're doing percent expansion. */ + if (percent) { + for (num_keys = 0; num_keys < EXPAND_MAX_KEYS; num_keys++) { + keys[num_keys].key = va_arg(ap, char *); + if (keys[num_keys].key == NULL) + break; + keys[num_keys].repl = va_arg(ap, char *); + if (keys[num_keys].repl == NULL) + fatal("%s: NULL replacement for token %s", __func__, keys[num_keys].key); + } + if (num_keys == EXPAND_MAX_KEYS && va_arg(ap, char *) != NULL) + fatal("%s: too many keys", __func__); + if (num_keys == 0) + fatal("%s: percent expansion without token list", + __func__); } - if (num_keys == EXPAND_MAX_KEYS && va_arg(ap, char *) != NULL) - fatal("%s: too many keys", __func__); - va_end(ap); /* Expand string */ for (i = 0; *string != '\0'; string++) { - if (*string != '%') { + /* Optionally process ${ENVIRONMENT} expansions. */ + if (dollar && string[0] == '$' && string[1] == '{') { + string += 2; /* skip over '${' */ + if ((varend = strchr(string, '}')) == NULL) { + error("%s: environment variable '%s' missing " + "closing '}'", __func__, string); + goto out; + } + len = varend - string; + if (len == 0) { + error("%s: zero-length environment variable", + __func__); + goto out; + } + var = xmalloc(len + 1); + (void)strlcpy(var, string, len + 1); + if ((val = getenv(var)) == NULL) { + error("%s: env var ${%s} has no value", + __func__, var); + missingvar = 1; + } else { + debug3("%s: expand ${%s} -> '%s'", __func__, + var, val); + if ((r = sshbuf_put(buf, val, strlen(val))) !=0) + fatal("%s: sshbuf_put: %s", __func__, + ssh_err(r)); + } + free(var); + string += len; + continue; + } + + /* + * Process percent expansions if we have a list of TOKENs. + * If we're not doing percent expansion everything just gets + * appended here. + */ + if (*string != '%' || !percent) { append: if ((r = sshbuf_put_u8(buf, *string)) != 0) { fatal("%s: sshbuf_put_u8: %s", @@ -1134,8 +1179,10 @@ percent_expand(const char *string, ...) /* %% case */ if (*string == '%') goto append; - if (*string == '\0') - fatal("%s: invalid format", __func__); + if (*string == '\0') { + error("%s: invalid format", __func__); + goto out; + } for (i = 0; i < num_keys; i++) { if (strchr(keys[i].key, *string) != NULL) { if ((r = sshbuf_put(buf, keys[i].repl, @@ -1146,16 +1193,72 @@ percent_expand(const char *string, ...) break; } } - if (i >= num_keys) - fatal("%s: unknown key %%%c", __func__, *string); + if (i >= num_keys) { + error("%s: unknown key %%%c", __func__, *string); + goto out; + } } - if ((ret = sshbuf_dup_string(buf)) == NULL) + if (!missingvar && (ret = sshbuf_dup_string(buf)) == NULL) fatal("%s: sshbuf_dup_string failed", __func__); + *parseerror = 0; + out: sshbuf_free(buf); - return ret; + return *parseerror ? NULL : ret; #undef EXPAND_MAX_KEYS } +char * +dollar_expand(int *parseerr, const char *string) +{ + char *ret; + int err; + va_list ap; + + memset(ap, 0, sizeof(ap)); /* unused */ + ret = vdollar_percent_expand(&err, 1, 0, string, ap); + if (parseerr != NULL) + *parseerr = err; + return ret; +} + +/* + * Returns expanded string or NULL if a specified environment variable is + * not defined, or calls fatal if the string is invalid. + */ +char * +percent_expand(const char *string, ...) +{ + char *ret; + int err; + va_list ap; + + va_start(ap, string); + ret = vdollar_percent_expand(&err, 0, 1, string, ap); + va_end(ap); + if (err) + fatal("%s failed", __func__); + return ret; +} + +/* + * Returns expanded string or NULL if a specified environment variable is + * not defined, or calls fatal if the string is invalid. + */ +char * +percent_dollar_expand(const char *string, ...) +{ + char *ret; + int err; + va_list ap; + + va_start(ap, string); + ret = vdollar_percent_expand(&err, 1, 1, string, ap); + va_end(ap); + if (err) + fatal("%s failed", __func__); + return ret; +} + int tun_open(int tun, int mode, char **ifname) { diff --git a/misc.h b/misc.h index 8e4234b65..7e9f5ac19 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.85 2020/05/26 01:06:52 djm Exp $ */ +/* $OpenBSD: misc.h,v 1.86 2020/05/29 04:25:40 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -68,7 +68,10 @@ int parse_uri(const char *, const char *, char **, char **, int *, char **); long convtime(const char *); const char *fmt_timeframe(time_t t); char *tilde_expand_filename(const char *, uid_t); + +char *dollar_expand(int *, const char *string); char *percent_expand(const char *, ...) __attribute__((__sentinel__)); +char *percent_dollar_expand(const char *, ...) __attribute__((__sentinel__)); char *tohex(const void *, size_t); void xextendf(char **s, const char *sep, const char *fmt, ...) __attribute__((__format__ (printf, 3, 4))) __attribute__((__nonnull__ (3))); diff --git a/readconf.c b/readconf.c index 63ed7fd5f..c0595a52b 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.330 2020/05/27 21:25:18 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.331 2020/05/29 04:25:40 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1809,7 +1809,12 @@ parse_keytypes: filename, linenum); parse_agent_path: /* Extra validation if the string represents an env var. */ - if (arg[0] == '$' && !valid_env_name(arg + 1)) { + if ((arg2 = dollar_expand(&r, arg)) == NULL || r) + fatal("%.200s line %d: Invalid environment expansion " + "%s.", filename, linenum, arg); + free(arg2); + /* check for legacy environment format */ + if (arg[0] == '$' && arg[1] != '{' && !valid_env_name(arg + 1)) { fatal("%.200s line %d: Invalid environment name %s.", filename, linenum, arg); } @@ -2355,12 +2360,19 @@ parse_forward(struct Forward *fwd, const char *fwdspec, int dynamicfwd, int remo { struct fwdarg fwdargs[4]; char *p, *cp; - int i; + int i, err; memset(fwd, 0, sizeof(*fwd)); memset(fwdargs, 0, sizeof(fwdargs)); - cp = p = xstrdup(fwdspec); + /* + * We expand environment variables before checking if we think they're + * paths so that if ${VAR} expands to a fully qualified path it is + * treated as a path. + */ + cp = p = dollar_expand(&err, fwdspec); + if (p == NULL || err) + return 0; /* skip leading spaces */ while (isspace((u_char)*cp)) diff --git a/ssh.c b/ssh.c index 98b6ce788..9d61e2e6d 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.527 2020/04/10 00:52:07 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.528 2020/05/29 04:25:40 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -259,6 +259,31 @@ default_client_percent_expand(const char *str, const char *homedir, (char *)NULL); } +/* + * Expands the set of percent_expand options used by the majority of keywords + * AND perform environment variable substitution. + * Caller must free returned string. + */ +static char * +default_client_percent_dollar_expand(const char *str, const char *homedir, + const char *remhost, const char *remuser, const char *locuser) +{ + char *ret; + + ret = percent_dollar_expand(str, + /* values from statics above */ + DEFAULT_CLIENT_PERCENT_EXPAND_ARGS, + /* values from arguments */ + "d", homedir, + "h", remhost, + "r", remuser, + "u", locuser, + (char *)NULL); + if (ret == NULL) + fatal("invalid environment variable expansion"); + return ret; +} + /* * Attempt to resolve a host name / port to a set of addresses and * optionally return any CNAMEs encountered along the way. @@ -1378,14 +1403,14 @@ main(int ac, char **av) if (options.control_path != NULL) { cp = tilde_expand_filename(options.control_path, getuid()); free(options.control_path); - options.control_path = default_client_percent_expand(cp, + options.control_path = default_client_percent_dollar_expand(cp, pw->pw_dir, host, options.user, pw->pw_name); free(cp); } if (options.identity_agent != NULL) { p = tilde_expand_filename(options.identity_agent, getuid()); - cp = default_client_percent_expand(p, + cp = default_client_percent_dollar_expand(p, pw->pw_dir, host, options.user, pw->pw_name); free(p); free(options.identity_agent); @@ -1395,7 +1420,7 @@ main(int ac, char **av) if (options.forward_agent_sock_path != NULL) { p = tilde_expand_filename(options.forward_agent_sock_path, getuid()); - cp = default_client_percent_expand(p, + cp = default_client_percent_dollar_expand(p, pw->pw_dir, host, options.user, pw->pw_name); free(p); free(options.forward_agent_sock_path); @@ -1573,7 +1598,8 @@ main(int ac, char **av) unsetenv(SSH_AUTHSOCKET_ENV_NAME); } else { cp = options.identity_agent; - if (cp[0] == '$') { + /* legacy (limited) format */ + if (cp[0] == '$' && cp[1] != '{') { if (!valid_env_name(cp + 1)) { fatal("Invalid IdentityAgent " "environment variable name %s", cp); @@ -2201,7 +2227,7 @@ load_public_identity_files(struct passwd *pw) continue; } cp = tilde_expand_filename(options.identity_files[i], getuid()); - filename = default_client_percent_expand(cp, + filename = default_client_percent_dollar_expand(cp, pw->pw_dir, host, options.user, pw->pw_name); free(cp); check_load(sshkey_load_public(filename, &public, NULL), @@ -2251,7 +2277,7 @@ load_public_identity_files(struct passwd *pw) for (i = 0; i < options.num_certificate_files; i++) { cp = tilde_expand_filename(options.certificate_files[i], getuid()); - filename = default_client_percent_expand(cp, + filename = default_client_percent_dollar_expand(cp, pw->pw_dir, host, options.user, pw->pw_name); free(cp); diff --git a/ssh_config.5 b/ssh_config.5 index dc010ccbd..001544dd3 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.325 2020/04/11 20:20:09 jmc Exp $ -.Dd $Mdocdate: April 11 2020 $ +.\" $OpenBSD: ssh_config.5,v 1.326 2020/05/29 04:25:40 dtucker Exp $ +.Dd $Mdocdate: May 29 2020 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -389,9 +389,11 @@ or .Pp Arguments to .Cm CertificateFile -may use the tilde syntax to refer to a user's home directory -or the tokens described in the +may use the tilde syntax to refer to a user's home directory, +the tokens described in the .Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES section. .Pp It is possible to have multiple certificate files specified in @@ -551,9 +553,11 @@ section above or the string to disable connection sharing. Arguments to .Cm ControlPath -may use the tilde syntax to refer to a user's home directory -or the tokens described in the +may use the tilde syntax to refer to a user's home directory, +the tokens described in the .Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES section. It is recommended that any .Cm ControlPath @@ -934,9 +938,11 @@ the location of the socket. .Pp Arguments to .Cm IdentityAgent -may use the tilde syntax to refer to a user's home directory -or the tokens described in the +may use the tilde syntax to refer to a user's home directory, +the tokens described in the .Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES section. .It Cm IdentityFile Specifies a file from which the user's DSA, ECDSA, authenticator-hosted ECDSA, @@ -1152,8 +1158,10 @@ indicates that the listening port be bound for local use only, while an empty address or .Sq * indicates that the port should be available from all interfaces. -Unix domain socket paths accept the tokens described in the +Unix domain socket paths may use the tokens described in the .Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES section. .It Cm LogLevel Gives the verbosity level that is used when logging messages from @@ -1423,8 +1431,10 @@ Multiple forwardings may be specified, and additional forwardings can be given on the command line. Privileged ports can be forwarded only when logging in as root on the remote machine. -Unix domain socket paths accept the tokens described in the +Unix domain socket paths may use the tokens described in the .Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES section. .Pp If the @@ -1875,6 +1885,29 @@ accepts all tokens. .Pp .Cm ProxyCommand accepts the tokens %%, %h, %n, %p, and %r. +.Sh ENVIRONMENT VARIABLES +Arguments to some keywords can be expanded at runtime from environment +variables on the client by enclosing them in +.Ic ${} , +for example +.Ic ${HOME}/.ssh +would refer to the user's .ssh directory. +If a specified environment variable does not exist then an error will be +returned and the setting for that keyword will be ignored. +.Pp +The keywords +.El +.Cm CertificateFile , +.Cm ControlPath , +.Cm IdentityAgent +and +.Cm IdentityFile +support environment variables. +The keywords +.Cm LocalForward +and +.Cm RemoteForward +support environment variables only for Unix domain socket paths. .Sh FILES .Bl -tag -width Ds .It Pa ~/.ssh/config -- cgit v1.2.3 From 188e332d1c8f9f24e5b6659e9680bf083f837df9 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 29 May 2020 05:37:03 +0000 Subject: upstream: mention that wildcards are processed in lexical order; bz#3165 OpenBSD-Commit-ID: 8856f3d1612bd42e9ee606d89386cae456dd165c --- ssh_config.5 | 3 ++- sshd_config.5 | 6 +++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/ssh_config.5 b/ssh_config.5 index 001544dd3..f9d55f8a2 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.326 2020/05/29 04:25:40 dtucker Exp $ +.\" $OpenBSD: ssh_config.5,v 1.327 2020/05/29 05:37:03 djm Exp $ .Dd $Mdocdate: May 29 2020 $ .Dt SSH_CONFIG 5 .Os @@ -1010,6 +1010,7 @@ Multiple pathnames may be specified and each pathname may contain wildcards and, for user configurations, shell-like .Sq ~ references to user home directories. +Wildcards will be expanded and processed in lexical order. Files without absolute paths are assumed to be in .Pa ~/.ssh if included in a user configuration file or diff --git a/sshd_config.5 b/sshd_config.5 index b294efc2d..17d8c130f 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.311 2020/04/17 06:12:41 jmc Exp $ -.Dd $Mdocdate: April 17 2020 $ +.\" $OpenBSD: sshd_config.5,v 1.312 2020/05/29 05:37:03 djm Exp $ +.Dd $Mdocdate: May 29 2020 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -817,7 +817,7 @@ The default is Include the specified configuration file(s). Multiple pathnames may be specified and each pathname may contain .Xr glob 7 -wildcards. +wildcards that will be expanded and processed in lexical order. Files without absolute paths are assumed to be in .Pa /etc/ssh . An -- cgit v1.2.3 From 0b15892fc47d6840eba1291a6be9be1a70bc8972 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 01:21:35 +0000 Subject: upstream: Unit test for convtime. ok djm@ OpenBSD-Regress-ID: cec4239efa2fc4c7062064f07a847e1cbdbcd5dd --- regress/unittests/misc/tests.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/regress/unittests/misc/tests.c b/regress/unittests/misc/tests.c index ed775ebbd..8fe6aedbb 100644 --- a/regress/unittests/misc/tests.c +++ b/regress/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.1 2019/04/28 22:53:26 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.2 2020/05/29 01:21:35 dtucker Exp $ */ /* * Regress test for misc helper functions. * @@ -76,4 +76,23 @@ tests(void) ASSERT_STRING_EQ(path, "some/path"); free(user); free(host); free(path); TEST_DONE(); + + TEST_START("misc_convtime"); + ASSERT_LONG_EQ(convtime("1"), 1); + ASSERT_LONG_EQ(convtime("2s"), 2); + ASSERT_LONG_EQ(convtime("3m"), 180); + ASSERT_LONG_EQ(convtime("1m30"), 90); + ASSERT_LONG_EQ(convtime("1m30s"), 90); + ASSERT_LONG_EQ(convtime("1h1s"), 3601); + ASSERT_LONG_EQ(convtime("1h30m"), 90 * 60); + ASSERT_LONG_EQ(convtime("1d"), 24 * 60 * 60); + ASSERT_LONG_EQ(convtime("1w"), 7 * 24 * 60 * 60); + ASSERT_LONG_EQ(convtime("1w2d3h4m5"), 788645); + ASSERT_LONG_EQ(convtime("1w2d3h4m5s"), 788645); + /* any negative number or error returns -1 */ + ASSERT_LONG_EQ(convtime("-1"), -1); + ASSERT_LONG_EQ(convtime(""), -1); + ASSERT_LONG_EQ(convtime("trout"), -1); + ASSERT_LONG_EQ(convtime("-77"), -1); + TEST_DONE(); } -- cgit v1.2.3 From 058674a62ffe33f01d871d46e624bc2a2c22d91f Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 04:32:26 +0000 Subject: upstream: Add regression and unit tests for ${ENV} style environment variable expansion in various keywords (bz#3140). ok djm@ OpenBSD-Regress-ID: 4d9ceb95d89365b7b674bc26cf064c15a5bbb197 --- regress/percent.sh | 15 +++++++-- regress/unittests/misc/tests.c | 69 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 79 insertions(+), 5 deletions(-) diff --git a/regress/percent.sh b/regress/percent.sh index 2e891f693..cdcbe1839 100644 --- a/regress/percent.sh +++ b/regress/percent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: percent.sh,v 1.6 2020/04/10 00:54:03 dtucker Exp $ +# $OpenBSD: percent.sh,v 1.7 2020/05/29 04:32:26 dtucker Exp $ # Placed in the Public Domain. tid="percent expansions" @@ -56,7 +56,7 @@ trial() for i in matchexec localcommand remotecommand controlpath identityagent \ forwardagent localforward remoteforward; do - verbose $tid $i + verbose $tid $i percent if [ "$i" = "localcommand" ]; then REMUSER=$USER trial $i '%T' NONE @@ -81,8 +81,19 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ "%/$HASH/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" done +# Subset of above since we don't expand shell-style variables on anything that +# runs a command because the shell will expand those. +for i in controlpath identityagent forwardagent localforward remoteforward; do + verbose $tid $i dollar + FOO=bar + export FOO + trial $i '${FOO}' $FOO +done + + # A subset of options support tilde expansion for i in controlpath identityagent forwardagent; do + verbose $tid $i tilde trial $i '~' $HOME/ trial $i '~/.ssh' $HOME/.ssh done diff --git a/regress/unittests/misc/tests.c b/regress/unittests/misc/tests.c index 8fe6aedbb..0bd0c84f9 100644 --- a/regress/unittests/misc/tests.c +++ b/regress/unittests/misc/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.2 2020/05/29 01:21:35 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.3 2020/05/29 04:32:26 dtucker Exp $ */ /* * Regress test for misc helper functions. * @@ -14,13 +14,14 @@ #include "test_helper.h" +#include "log.h" #include "misc.h" void tests(void) { - int port; - char *user, *host, *path; + int port, parseerr; + char *user, *host, *path, *ret; TEST_START("misc_parse_user_host_path"); ASSERT_INT_EQ(parse_user_host_path("someuser@some.host:some/path", @@ -95,4 +96,66 @@ tests(void) ASSERT_LONG_EQ(convtime("trout"), -1); ASSERT_LONG_EQ(convtime("-77"), -1); TEST_DONE(); + + TEST_START("dollar_expand"); + if (setenv("FOO", "bar", 1) != 0) + abort(); + if (setenv("BAR", "baz", 1) != 0) + abort(); + if (unsetenv("BAZ") != 0) + abort(); +#define ASSERT_DOLLAR_EQ(x, y) do { \ + char *str = dollar_expand(NULL, (x)); \ + ASSERT_STRING_EQ(str, (y)); \ + free(str); \ +} while(0) + ASSERT_DOLLAR_EQ("${FOO}", "bar"); + ASSERT_DOLLAR_EQ(" ${FOO}", " bar"); + ASSERT_DOLLAR_EQ("${FOO} ", "bar "); + ASSERT_DOLLAR_EQ(" ${FOO} ", " bar "); + ASSERT_DOLLAR_EQ("${FOO}${BAR}", "barbaz"); + ASSERT_DOLLAR_EQ(" ${FOO} ${BAR}", " bar baz"); + ASSERT_DOLLAR_EQ("${FOO}${BAR} ", "barbaz "); + ASSERT_DOLLAR_EQ(" ${FOO} ${BAR} ", " bar baz "); + ASSERT_DOLLAR_EQ("$", "$"); + ASSERT_DOLLAR_EQ(" $", " $"); + ASSERT_DOLLAR_EQ("$ ", "$ "); + + /* suppress error messages for error handing tests */ + log_init("test_misc", SYSLOG_LEVEL_QUIET, SYSLOG_FACILITY_AUTH, 1); + /* error checking, non existent variable */ + ret = dollar_expand(&parseerr, "a${BAZ}"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 0); + ret = dollar_expand(&parseerr, "${BAZ}b"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 0); + ret = dollar_expand(&parseerr, "a${BAZ}b"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 0); + /* invalid format */ + ret = dollar_expand(&parseerr, "${"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 1); + ret = dollar_expand(&parseerr, "${F"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 1); + ret = dollar_expand(&parseerr, "${FO"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 1); + /* empty variable name */ + ret = dollar_expand(&parseerr, "${}"); + ASSERT_PTR_EQ(ret, NULL); ASSERT_INT_EQ(parseerr, 1); + /* restore loglevel to default */ + log_init("test_misc", SYSLOG_LEVEL_INFO, SYSLOG_FACILITY_AUTH, 1); + TEST_DONE(); + + TEST_START("percent_expand"); + ASSERT_STRING_EQ(percent_expand("%%", "%h", "foo", NULL), "%"); + ASSERT_STRING_EQ(percent_expand("%h", "h", "foo", NULL), "foo"); + ASSERT_STRING_EQ(percent_expand("%h ", "h", "foo", NULL), "foo "); + ASSERT_STRING_EQ(percent_expand(" %h", "h", "foo", NULL), " foo"); + ASSERT_STRING_EQ(percent_expand(" %h ", "h", "foo", NULL), " foo "); + ASSERT_STRING_EQ(percent_expand(" %a%b ", "a", "foo", "b", "bar", NULL), + " foobar "); + TEST_DONE(); + + TEST_START("percent_dollar_expand"); + ASSERT_STRING_EQ(percent_dollar_expand("%h${FOO}", "h", "foo", NULL), + "foobar"); + TEST_DONE(); } -- cgit v1.2.3 From ec1d50b01c84ff667240ed525f669454c4ebc8e9 Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Fri, 29 May 2020 05:48:39 +0000 Subject: upstream: remove a stray .El; OpenBSD-Commit-ID: 58ddfe6f8a15fe10209db6664ecbe7896f1d167c --- ssh_config.5 | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/ssh_config.5 b/ssh_config.5 index f9d55f8a2..d5c561a10 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.327 2020/05/29 05:37:03 djm Exp $ +.\" $OpenBSD: ssh_config.5,v 1.328 2020/05/29 05:48:39 jmc Exp $ .Dd $Mdocdate: May 29 2020 $ .Dt SSH_CONFIG 5 .Os @@ -1897,7 +1897,6 @@ If a specified environment variable does not exist then an error will be returned and the setting for that keyword will be ignored. .Pp The keywords -.El .Cm CertificateFile , .Cm ControlPath , .Cm IdentityAgent -- cgit v1.2.3 From f85b118d2150847cc333895296bc230e367be6b5 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 09:02:44 +0000 Subject: upstream: Pass a NULL instead of zeroed out va_list from dollar_expand. The original intent was in case there's some platform where va_list is not a pointer equivalent, but on i386 this chokes on the memset. This unbreaks that build, but will require further consideration. OpenBSD-Commit-ID: 7b90afcd8e1137a1d863204060052aef415baaf7 --- misc.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/misc.c b/misc.c index 3ec02d79e..9ba913c3e 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.150 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.151 2020/05/29 09:02:44 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -1212,10 +1212,8 @@ dollar_expand(int *parseerr, const char *string) { char *ret; int err; - va_list ap; - memset(ap, 0, sizeof(ap)); /* unused */ - ret = vdollar_percent_expand(&err, 1, 0, string, ap); + ret = vdollar_percent_expand(&err, 1, 0, string, NULL); if (parseerr != NULL) *parseerr = err; return ret; -- cgit v1.2.3 From 837ffa9699a9cba47ae7921d2876afaccc027133 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 29 May 2020 20:39:00 +1000 Subject: Omit ToS setting if we don't have IPV6_TCLASS too. Fixes tests on old BSDs. --- regress/netcat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regress/netcat.c b/regress/netcat.c index 24395263f..d583176f1 100644 --- a/regress/netcat.c +++ b/regress/netcat.c @@ -1187,7 +1187,7 @@ set_common_sockopts(int s, int af) &x, sizeof(x)) == -1) err(1, "setsockopt"); } -#ifdef IP_TOS +#if defined(IP_TOS) && defined(IPV6_TCLASS) if (Tflag != -1) { int proto, option; -- cgit v1.2.3 From 712ac1efb687a945a89db6aa3e998c1a17b38653 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 29 May 2020 11:17:56 +0000 Subject: upstream: Make dollar_expand variadic and pass a real va_list to vdollar_percent_expand. Fixes build error on arm64 spotted by otto@. OpenBSD-Commit-ID: 181910d7ae489f40ad609b4cf4a20f3d068a7279 --- misc.c | 15 ++++++++++++--- misc.h | 4 ++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/misc.c b/misc.c index 9ba913c3e..f29e9bc3a 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.151 2020/05/29 09:02:44 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.152 2020/05/29 11:17:56 dtucker Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -1207,13 +1207,22 @@ vdollar_percent_expand(int *parseerror, int dollar, int percent, #undef EXPAND_MAX_KEYS } +/* + * Expand only environment variables. + * Note that although this function is variadic like the other similar + * functions, any such arguments will be unused. + */ + char * -dollar_expand(int *parseerr, const char *string) +dollar_expand(int *parseerr, const char *string, ...) { char *ret; int err; + va_list ap; - ret = vdollar_percent_expand(&err, 1, 0, string, NULL); + va_start(ap, string); + ret = vdollar_percent_expand(&err, 1, 0, string, ap); + va_end(ap); if (parseerr != NULL) *parseerr = err; return ret; diff --git a/misc.h b/misc.h index 7e9f5ac19..ab94a79c0 100644 --- a/misc.h +++ b/misc.h @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.h,v 1.86 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: misc.h,v 1.87 2020/05/29 11:17:56 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -69,7 +69,7 @@ long convtime(const char *); const char *fmt_timeframe(time_t t); char *tilde_expand_filename(const char *, uid_t); -char *dollar_expand(int *, const char *string); +char *dollar_expand(int *, const char *string, ...); char *percent_expand(const char *, ...) __attribute__((__sentinel__)); char *percent_dollar_expand(const char *, ...) __attribute__((__sentinel__)); char *tohex(const void *, size_t); -- cgit v1.2.3 From 5ad3c3a33ef038b55a14ebd31faeeec46073db2c Mon Sep 17 00:00:00 2001 From: "millert@openbsd.org" Date: Fri, 29 May 2020 21:22:02 +0000 Subject: upstream: Fix error message on close(2) and add printf format attributes. From Christos Zoulas, OK markus@ OpenBSD-Commit-ID: 41523c999a9e3561fcc7082fd38ea2e0629ee07e --- scp.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scp.c b/scp.c index b4492a062..6b1a0c8be 100644 --- a/scp.c +++ b/scp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.210 2020/05/06 20:57:38 djm Exp $ */ +/* $OpenBSD: scp.c,v 1.211 2020/05/29 21:22:02 millert Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -373,8 +373,11 @@ typedef struct { BUF *allocbuf(BUF *, int, int); void lostconn(int); int okname(char *); -void run_err(const char *,...); -int note_err(const char *,...); +void run_err(const char *,...) + __attribute__((__format__ (printf, 1, 2))) + __attribute__((__nonnull__ (1))); +int note_err(const char *,...) + __attribute__((__format__ (printf, 1, 2))); void verifydir(char *); struct passwd *pwd; @@ -1520,7 +1523,7 @@ bad: run_err("%s: %s", np, strerror(errno)); } } if (close(ofd) == -1) - note_err(np, "%s: close: %s", np, strerror(errno)); + note_err("%s: close: %s", np, strerror(errno)); (void) response(); if (showprogress) stop_progress_meter(); -- cgit v1.2.3 From b458423a38a3140ac022ffcffcb332609faccfe3 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Mon, 1 Jun 2020 07:11:38 +0000 Subject: upstream: Remove now-unused proto_spec and associated definitions. ok djm@ OpenBSD-Commit-ID: 2e2b18e3aa6ee22a7b69c39f2d3bd679ec35c362 --- compat.c | 28 +--------------------------- compat.h | 8 +------- 2 files changed, 2 insertions(+), 34 deletions(-) diff --git a/compat.c b/compat.c index 0624dc6de..7c0e1c230 100644 --- a/compat.c +++ b/compat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.c,v 1.113 2018/08/13 02:41:05 djm Exp $ */ +/* $OpenBSD: compat.c,v 1.114 2020/06/01 07:11:38 dtucker Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -157,32 +157,6 @@ compat_datafellows(const char *version) return 0; } -#define SEP "," -int -proto_spec(const char *spec) -{ - char *s, *p, *q; - int ret = SSH_PROTO_UNKNOWN; - - if (spec == NULL) - return ret; - q = s = strdup(spec); - if (s == NULL) - return ret; - for ((p = strsep(&q, SEP)); p && *p != '\0'; (p = strsep(&q, SEP))) { - switch (atoi(p)) { - case 2: - ret |= SSH_PROTO_2; - break; - default: - logit("ignoring bad proto spec: '%s'.", p); - break; - } - } - free(s); - return ret; -} - char * compat_cipher_proposal(char *cipher_prop) { diff --git a/compat.h b/compat.h index d611d33e7..66db42cc0 100644 --- a/compat.h +++ b/compat.h @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.h,v 1.54 2018/08/13 02:41:05 djm Exp $ */ +/* $OpenBSD: compat.h,v 1.55 2020/06/01 07:11:38 dtucker Exp $ */ /* * Copyright (c) 1999, 2000, 2001 Markus Friedl. All rights reserved. @@ -27,11 +27,6 @@ #ifndef COMPAT_H #define COMPAT_H -#define SSH_PROTO_UNKNOWN 0x00 -#define SSH_PROTO_1 0x01 -#define SSH_PROTO_1_PREFERRED 0x02 -#define SSH_PROTO_2 0x04 - #define SSH_BUG_UTF8TTYMODE 0x00000001 #define SSH_BUG_SIGTYPE 0x00000002 /* #define unused 0x00000004 */ @@ -64,7 +59,6 @@ #define SSH_BUG_DHGEX_LARGE 0x40000000 u_int compat_datafellows(const char *); -int proto_spec(const char *); char *compat_cipher_proposal(char *); char *compat_pkalg_proposal(char *); char *compat_kex_proposal(char *); -- cgit v1.2.3 From 049297de975b92adcc2db77e3fb7046c0e3c695d Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 3 Jun 2020 08:23:18 +0000 Subject: upstream: Import regenerated moduli file. OpenBSD-Commit-ID: 52ff0e3205036147b2499889353ac082e505ea54 --- moduli | 867 ++++++++++++++++++++++++++++++++++------------------------------- 1 file changed, 453 insertions(+), 414 deletions(-) diff --git a/moduli b/moduli index 10e85440f..85b70a13d 100644 --- a/moduli +++ b/moduli @@ -1,415 +1,454 @@ -# $OpenBSD: moduli,v 1.26 2020/02/20 05:41:50 dtucker Exp $ +# $OpenBSD: moduli,v 1.27 2020/06/03 08:23:16 dtucker Exp $ # Time Type Tests Tries Size Generator Modulus -20191022074127 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C0FFE0C2D7 -20191022074138 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C0FFEE1D33 -20191022074152 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1000302CF -20191022074200 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10009CAA3 -20191022074209 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1000E102F -20191022074218 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10017AEC3 -20191022074224 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1001AC4BF -20191022074243 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10036E7A7 -20191022074322 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C100727D9F -20191022074342 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10091E09B -20191022074428 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C100DB96B3 -20191022074435 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C100E315C3 -20191022074440 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C100E4BB67 -20191022074450 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C100EFF477 -20191022074526 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10125A5DB -20191022074629 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1019192BB -20191022074654 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C101BD818B -20191022074721 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C101E63DAF -20191022074911 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C102A7DFE7 -20191022074915 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C102A7EDF7 -20191022074926 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C102B62DA3 -20191022075007 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C102F7B693 -20191022075045 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1033B1D1F -20191022075211 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C103CDEA43 -20191022075252 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10417630B -20191022075337 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10462BA5F -20191022075408 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C104906FA3 -20191022075418 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1049C8563 -20191022075526 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10516447B -20191022075538 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C105263DC3 -20191022075545 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1052B9CB3 -20191022075648 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C105985083 -20191022075711 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C105B6F457 -20191022075721 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C105C3BB0B -20191022075832 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1064323B3 -20191022075846 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C106578B1F -20191022075941 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C106B58ADF -20191022075955 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C106CA5743 -20191022080041 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10715FF37 -20191022080105 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1073A7C3B -20191022080147 2 6 100 2047 5 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C10782FEF7 -20191022080206 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1079A53A3 -20191022080212 2 6 100 2047 2 E854C2A5759DFE93314B4F76AA4E7A249192AD0B0C70B1E62F3E0B4A37D181C7D1A233312886ED675788CBBC2B384D16C0CA8E5DED996C54F68568F21D6A2333E189848A5271AC0CA6F3DAAAE469F98E1B5223CB4253653FA82242C4D29AD65E878EA91522C51CF98774952FDD9453406B4AB50A7CDFA97BB4650F601DEC496C5839F98CD774BC0F9B57581633771865F175F3D72EFAB15D377CAB2EFBD812D6F13FAD3181323BDBD95BF44703FF38225883FDF4A536DA17F8C3441459AF90528DDA015E85A978C0ABB4708407B9394C8DFB4B654348131E7EA91FCF853C44D055ADEEAE40486AF9E1724D55CA27F97F7563A82EA86B661ED02383C1079CA49B -20191022080437 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6254F1CC3 -20191022080445 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6255528FF -20191022080450 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC625566D5F -20191022080507 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6256E3B7F -20191022080516 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62573826F -20191022080529 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6258313D7 -20191022080539 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6258FAE9F -20191022080552 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC625A1898B -20191022080620 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC625CCD3BB -20191022080644 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC625F373DF -20191022080653 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC625FE7A37 -20191022080713 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62618F277 -20191022080742 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6264B5263 -20191022080848 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC626BEAA8B -20191022080900 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC626CD618F -20191022080911 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC626D33B5B -20191022080939 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62703D917 -20191022081024 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6273B779B -20191022081034 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC627427EAB -20191022081413 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62802E907 -20191022081751 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC628B7905F -20191022081834 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC628DBDDF3 -20191022081843 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC628DD29D3 -20191022081901 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC628E650F7 -20191022081950 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6290B1487 -20191022082140 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62959CDF7 -20191022082225 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC6297568D7 -20191022082400 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC629B7AC1B -20191022082607 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62A2EF923 -20191022082624 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62A3A2537 -20191022082651 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62A50145F -20191022082739 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62A77164B -20191022082909 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62AD303A7 -20191022082923 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62AD5CF33 -20191022083101 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62B343BEF -20191022083132 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62B47F117 -20191022083152 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62B53A7EB -20191022083332 2 6 100 2047 5 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62B9ED527 -20191022083541 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62BFDF373 -20191022083653 2 6 100 2047 2 C66D2C1883042B443CFE0A10A9DE4F2120CB375E93A50CEF11ADD1B8F8ED9923BBE9E231DDC9F241621E6FC0DC320B783086E419F0D746394CECDE3E7AE09E87956DB1ED4E517A9661F6361EA745ECB5841BB8B7A12AA7ECE0CB262D6462AE527E1D4562DB853E712CAAC8971C17A3D4D3A98187A3E78A0FFBF46C94A4EAA09CD4E81973862E8DE4EC5A64ED78C4524300ED4727A365FFE41F5EF11325038F788DE6ECC6B93D77B6435F333AED77FFC5EE20D166E9766BCEFF7A0399601CAD4E1D746C59A5C0775375F76F2CC92F7222854A179902F3F324AC56996CC6AAA3612051EB7AF7EFB3F199FFD5A0661B6B8ECFB8E71C256DF5275B932FC62C3DC8A3 -20191022092407 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50A338107 -20191022094427 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50B5A745B -20191022095026 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50BB26CFB -20191022095757 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50C22C577 -20191022100015 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50C3FB8DF -20191022101519 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50D2350DB -20191022102519 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50DB8BE5F -20191022103601 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50E50FDAB -20191022105902 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA50FDC58C3 -20191022110723 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA510777B23 -20191022111301 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA510E968FF -20191022111931 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51168241F -20191022112616 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA511E89D1F -20191022115052 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA513DB748F -20191022121302 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA515D683FB -20191022121526 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5160BAA4B -20191022121542 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5160BED3B -20191022121601 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5160E3E63 -20191022121811 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5164A2E73 -20191022122332 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA517055113 -20191022122412 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA517133383 -20191022122637 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA517638283 -20191022122836 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5179FD6A7 -20191022123100 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA517EAE913 -20191022123327 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5182B9D27 -20191022123424 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA518407A6B -20191022123511 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA5184FB45B -20191022123600 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51863E15F -20191022123622 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA518664AB7 -20191022124625 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA519AC1C6B -20191022124824 2 6 100 3071 5 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA519E8D89F -20191022125143 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51A5644B3 -20191022125456 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51AC223CB -20191022130231 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51BC05D9B -20191022130435 2 6 100 3071 2 D00135D249B408C9C43A9853424ACA3EDF29C91A8760DB5CE2C29A213031753FCBF3A8892770E231C072CA20C6EE29FAD67E50456D8E08CEADB2741F25A802DB85BD3A1F2DDEA57736D8E19AFDE970D9C2345E6A0B734D296DA2773A565F509DF0C637A2611C59D93E22F88D1600FD6798D6251F8F6F6AD12654A7DF7DBD559F4BCF140BBCA454F23F75DDF40531DE17AE102D98E69CF4A027E5614C2ADB4E724F41EF72C6C54F5132379E53787F916D1164FF74EE411A513515F4BE5DC64712B0E786A690520BA4ACC7B4F95CDCF1D39F5D41D8725FA194AD1CDA0604F67FA4C30B342FF8334DF973090113EF54EC82BB7184356A5D076CCEE598FEEE728A9C6DAE101CF412CCCF320F430CF1754E10D24F876B11DF347DF662E58EAF1642D7D4ABDE5F097EF9C8EF567D33D11AA7F7C8DCC6E2BAA2702CF21832F33215A8B4D8CF5026FB71C4892B7D57F692EAB9463FE4BA79DCE00442BBD41F0E539BFDF58151B295B4B52C43EE071E0DB45EFBCF7C2402C2719283B2188A7BA51BFF7E23 -20191022130821 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EDF6A052B -20191022131106 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EDFBF6B4B -20191022131309 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EDFFDD323 -20191022131339 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE008716B -20191022131426 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE01A5ECF -20191022131921 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE0BF992B -20191022132230 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE127F08F -20191022132941 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE226E25B -20191022133745 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE33AB123 -20191022134534 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE44106F3 -20191022134625 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE455482B -20191022134720 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE46CCF9B -20191022134822 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE489D84B -20191022135012 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE4C1DAE3 -20191022135216 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE5043D3B -20191022135757 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE57878BB -20191022140734 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE6BA655B -20191022142332 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE8EAF59B -20191022142420 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE8FD9DD7 -20191022142754 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE9733DBB -20191022142817 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE975F4B3 -20191022142942 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EE9A37157 -20191022144132 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEB21454F -20191022144147 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEB22B7DB -20191022144244 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEB38090B -20191022144542 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEB95B34B -20191022145051 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEC40A7FF -20191022145134 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEC502BF3 -20191022145406 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EECA2580B -20191022145505 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EECBDBF73 -20191022150136 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EED9F7463 -20191022150745 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEE758BDB -20191022151026 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEECBE16B -20191022151204 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEEFDA69B -20191022151244 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEF0D0497 -20191022151301 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEF0FF43B -20191022151431 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEF3CEEB3 -20191022151535 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EEF5CB1A3 -20191022152032 2 6 100 3071 5 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EF00699A7 -20191022152057 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EF00EFCAB -20191022152637 2 6 100 3071 2 DF2C9C2AE196431BA2F72808B4B3BEE51B068BC569BB83E2E500DF23BB7A3034053999EC562CC1DD8064F2F026E557D069B42670BD4AEFB0ABD18C6BEF70FA0CDC33A59CA1B4E92576A87A81140834C7F8F6BB3BD3C0B1ABBC39E3F85348B097157EAB5115CDCE8A1274D3E95A1A77A0FF34C11ECBCC54C0B95F2A37FFDD00ECD37C74137358475F72FD37B6580DB272E469D382B7A22FBE9859E8C5CC42CCFE2E2E0EF51F90697E0CE7459FE037B8870CBE7C636160F98E6B3FD98EBADC5749E1DFFE5118C757886D668C4355018A78E76593A4268D5783507A31A12625DDE4DB30DF12233756F3690681E3E91BDB2BB4D36A6B1E77F23C7EC39B57582203E4FC4AFC2AAB33D10BC4A1EE6687A6524B9A0BA6ED3347764E880FBB6B645EF091E42567813FA31A97B39F185BFB303CEC2EAE412913351C926B3F14A5EAE1CEA771F333374DA7CF83D16C3048367B05432BEDC88DF66F92D8942ACED0E83E804B8CFE8A75BD9AB504D09B286EC7FB175A2A6DA848CD7AB3503877077EF0D0F343 -20191022162825 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D813960B5FB -20191022170230 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D813B823183 -20191022173749 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D813DBE76FF -20191022182715 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8140DADF3B -20191022183421 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814147138B -20191022184621 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8142020493 -20191022185705 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8142A5D767 -20191022190031 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8142D4B05F -20191022190457 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81431290D7 -20191022190552 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814318C56F -20191022191638 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8143BDC2DB -20191022191758 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8143CAE497 -20191022192300 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8144142F3F -20191022195622 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814632A81B -20191022195854 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8146547CD3 -20191022200200 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81467EFE3F -20191022205134 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81499F9BF3 -20191022211317 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814AF7C2DF -20191022212155 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814B7B777F -20191022213552 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814C560507 -20191022215648 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814DA0CEEB -20191022215902 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814DBD146B -20191022221214 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814E8802CF -20191022222728 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D814F6F35AB -20191022224558 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8150919C63 -20191022224953 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8150C9F1CF -20191022225735 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81513C4A13 -20191022234711 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81544BEA1B -20191023000745 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81558FF6DB -20191023002021 2 6 100 4095 2 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D81564FD2C3 -20191023002706 2 6 100 4095 5 CC199B2E429DD1809E193696BF0F2AB45FFC1E077B916F4E9E453876787A644C71CB859FC28B47CEA27D037E3B1F36EE8F5ACFB5D7315177F67A65CBCCB359E658120697DAFB3695C560A2693A7F1D7B22A1F8DF14987A2615D3E2E2C99232DDCF03F12248975CF039EE2DB522CEBC0391B6AA2CC7E45866DDC19D62E6A835C8347F6A447E6A6266DDFAD3197405E66C932E4A1213186F67F843E1962FD311F97062775E1FE9D0DE2525187275D01694AD66E670A40BA284BEE0FB7C64D1A79C2A18786E819FCF996631115EC212F37584F7203E6F0EE60C3963BF148A288D68B2800AF662CBBCDF8235A8DC206968ED54E3EB7C4D233C98804AE2A70DC47E995535F98C0DEBDBFDAFA8E532C6EB998925A0EEA652957973DC7643B1B5C66FF2D22C3205E96D67D1A67D2EBB9AAEC446A29EB0687550F78C18A398422EC07954B9A730FEDBAA0AD5ED90BB892C80A77AE5D27DA0DA0D3EC3075C10C86948F0B3D3DC2393673B226A3F6364DFF3D027B38BA51481461C1BF5F3C3FFBBEEADC882B5D0F4C5F59D977AB6E00A25066D8BF473481A1EA441A896D46C829DB1A489CB09FD9E1B1D09B4F1B854041583FAD18D6D303487DE1DC89D87F599920FA8EEDD4A3B64A520C3EC3AB670E93C89D0D43BC858FD991A78DDEBA72A5998DAD5AAE0123FF9E0F2E344C42E5581FFAAC36E54644B1AC1C021A7D6E9096D8156B28D27 -20191023011355 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1460883F -20191023012442 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1509A3E3 -20191023014214 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1620E157 -20191023015245 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC16C48533 -20191023020841 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC17C54673 -20191023021754 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1857058B -20191023021829 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1857094B -20191023022432 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC18B12DFF -20191023030433 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1B390A47 -20191023031027 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1B90EEA7 -20191023031756 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1C00CBAB -20191023032601 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1C810F3B -20191023041220 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC1F6D731B -20191023044241 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2154D00B -20191023050540 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC22C34F7F -20191023053137 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC24636123 -20191023054409 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC25224B73 -20191023055524 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC25D1FFDB -20191023060757 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2694C58B -20191023061045 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC26B834E3 -20191023061921 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2738F1C3 -20191023063046 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC27F1807B -20191023070045 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC29CDC52B -20191023071942 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2AFB0F2B -20191023074553 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2C984AAB -20191023074939 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2CCC9613 -20191023075554 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2D28BCCF -20191023075639 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2D2BA71B -20191023080618 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2DBACC87 -20191023083736 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC2FAEE4A3 -20191023084930 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC30617C97 -20191023085843 2 6 100 4095 2 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC30EE1283 -20191023090057 2 6 100 4095 5 E742CC22AC8196AB705E8DB89387F5DBFB15A97C6B3E188CBD4C792BC874928A0148F33791BBFB4E82989EC1F4C5C4FBF002A329190728BFC02AAFD8218102045AF53F8650CAD3E6B98544A1567576B26AD72F6CEBC0F7CF15EB5A62D4678A0E4A0AE868F759BAA31EB27083AAE879248068FAD7FEDD7673689E4C22010278DF2EB37E9FAF353C5A66F0B5916A9812AC91B581B0428D5C9A8D4CEAEAE5B9D11BA3692EBDC9D86C56B0F44CC0771ED405915ED4253A19F58913CB84758666F7D533E2C52E07B06788EE3AA292C9EF6A6183411892166710781DD188F88BBEECE87F6F1CFBADC954D7061B9F0F5F2C6A7754498D868AE526C8F440D1BFAF8F70059A96760EECB594F9518DDCAC1478FAF387D0703A4A57D1A66701076FA15F4E7E9BC6B0407DA00FA1112B6BE13867669FB21F8D8241C11252ECC5F15816FBC447BC0DE3089629EC03B4F14B6D8C12EA1884379BED5C4B39BA1E3D07BC6C4B5295D4629B5E2503C4775B944D5F2617C4D95527E79EC7EA2CF7E116A1FF95EEFF00A79ABAC3D35524D7C64B8D4199381BFC9DEB3BFE19E0AEEE9B2B864FA74F8C478EE5B6693DD7B6F1E87066EEE9CC0E51F9999E0EC914D96BF86958F0ABFDB6EEA5BD347F6A91C6F4FCC4785E924C76979D0309DABA023B44E4AEA5439696F501D58ACE247D49865FAB169422CAA151DB57A5C4EFF392E56467702ECC31091E2F -20191023150040 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44442FE9DE33 -20191023185353 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444434DA83FB -20191023202543 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444436C35ABB -20191023212301 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444437F75207 -20191024004920 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44443C4BC217 -20191024005456 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44443C62147B -20191024013830 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44443D4436C7 -20191024020328 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44443DC27DCB -20191024022030 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44443E12DF8B -20191024041749 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E4444401CCD8B -20191024071132 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444442526417 -20191024071851 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E4444426F0F73 -20191024093118 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444445307603 -20191024095518 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444445A39BD3 -20191024150723 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44444BF198DF -20191024180500 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44444F817E93 -20191024182834 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44444FF6FAA7 -20191024190019 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444450947417 -20191024190629 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444450ACC83B -20191024234818 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44445664815B -20191025002527 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E4444571ED7D7 -20191025090114 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446188A3EB -20191025105729 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444463CF6B53 -20191025125212 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446611F15B -20191025133454 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E444466DDD74B -20191025164443 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446A87280B -20191025173652 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446B808D0F -20191025182518 2 6 100 6143 5 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446C72A18F -20191025210336 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446F8C312B -20191025210946 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44446FA296A3 -20191025213641 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E4444701DD76B -20191025214012 2 6 100 6143 2 F67B301557C55AD46F6DAA869BA8D47C6F0427967EA2FAA689023BE705A7BE78E0F15EF3CE6E1987046EB157869E4C7E9B8956C77298C890B27625010664B31A3C2D4108DF8C107452C5325FCF42D35352C5266216132537F79E9616490BB1DAA074F6FE115C99BF54BA7F1376DE63D03548B97DA359494AE445FF444A315672671FF890B4042CA45A76D1DCEA9F1B7805A6A041A0C7B034818030D63D48873A210A7F7BBDA29E2E659CC81FFDFA2C5DB73579A55DC72C97D81490D81E432222566C75B7951EFDFB69FE1411F6A5D3184D9506847EA5C4FDA3EB48A02ED763C1943A0CA01BC097DA347A1E7C0B2D2856E101EEC5718B7374148D9C31AEA79593C404A0D6F623A38C893B7D2A838DBF65DFCD08C4EE41F168928339CC53DD56D80606F865EB4A188F69AA6B4B7E8D66F87B76F75C420DD5CF015A46F6EDED8F173FCBF541AFC74615A2D088C366966F504B185AE363A5A61E327CDE1C95DEA36A4B371D92D757555FFDC51438254C94B4F0BC14D7F5C7B4214F704BDC4900E398A8EAC4A5AD3EDA128CEE6F7F480E79F4090AC08195B58EF86DAFA09B498BD8BCEE3D4E24A947DA115B1971725EE052502826583E92B86333D938A30D95C4C2DFBB29EB9092C282C86D2FA3D738BAE93B1A2A3A9A86E4693C5887577E5B6770928111BB4E4F58F9CA1845FEC6F92337C38483E6DBEA1C05986D7350D1C4CB9C5C5C4FF9B261C8F8B4A543071118A58B5AC46EBE92808B17C740B7EEF556F5258F576E50A3F2890BFBE4F29DE83A1984453D3E1CCCDB9E5C90846FC222682F51E1F3C12F51127A9B42F9F7B90C5DECC63F2C53DA5162B14BFB3ECC1D872D035EE58A3927766CCF3BF9A87B03B1E2FB87FE265B77B41FBD397B12BEAA86424D14440B5896E47A6867D054BDAC00C2DB7AB2BF882F07C7B6AC98CC9937E5ADA6AC48C65D5929E614CD71E72EA57EF5DC6B5BF464629A6A3DB4739AA760C059846C971E6C1AD7260622B450EBF395D2E4D0A554DCF3683A3AD6870838CE795435971B6D9380091F17470348F56E4E8E8EB660E60CB4F20BF89DB8B71E44447026470B -20191026005042 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E05623363 -20191026075212 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E0E59DF2F -20191026134748 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E15C2570B -20191026141044 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E1634BA8F -20191026152621 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E17BF036F -20191026153744 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E17F17297 -20191026161846 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E18BFBD0B -20191026183157 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E1B69DDFB -20191026183823 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E1B80AE83 -20191026184938 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E1BAFB703 -20191026215453 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E1F57BDAB -20191027005434 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E23020867 -20191027042709 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E27606193 -20191027062047 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E29A86A4F -20191027071632 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E2AC3EFB3 -20191027092825 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E2D67AD13 -20191027104355 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E2EE2E4EF -20191027105052 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E2EFD8C0F -20191027112952 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E2FC1013F -20191027134854 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E327D6FDB -20191027141251 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E32EE5767 -20191027160720 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E352B49DB -20191027164412 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E35E01D13 -20191027165524 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E36100063 -20191027184917 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E382743F7 -20191027205847 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3A93CA6B -20191027210626 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3AAFB96F -20191027211813 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3AE1DE63 -20191027213244 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3B21B0FF -20191027213714 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3B2E39F7 -20191027221420 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3BD9058F -20191028002356 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3E45B4B3 -20191028005652 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3ED864BB -20191028014800 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E3FC45A63 -20191028021443 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E40396033 -20191028041626 2 6 100 6143 2 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E42827263 -20191028054443 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E44349037 -20191028102149 2 6 100 6143 5 CA8BE2F0F45FB0E6A14758704CB3E994D1CC39121A04E6441CD99BB5147478C39229902EF283CD0F2D7E51EA756E65DF0A2457307EADDDC7715A527708C8EE041DE44AFE8BBFED0C5C7130EF8B89E817469B9768C6C9016C6AF5CD9E6F8563A1837747B61D25872F44D8482C5986C5322ADC7CC68FC4EF025E2CEBB933E78CCBD70E4D223DA4F5F6683F2B7802088333A51F0CEDBA0D15D3B31637778A0F86BE61FDD1392F4CEA58DECFA99D5087F31B753180FBE456959CF7615FCE40B34D0C188B1011C15882B3F62AA4BA89B240B03F285AB0E8AF85C1AA68A127C567E9784B04CB2553AE64CD42BD90F234A86A6D75A2E4EE81343128C786F878C21F60BFDEC0620311448953945CA88637C98E475CF3195404FE19208D6629CCBD307B1B79222A9BCAD27953104E4AF38259A6C2136F82A3A29D339AADECCC09C02ABC0D42A3203CFE7894A1D3CDB5E9D5A7612845279E73D7CC6C7D4D54C2C0AE19C3D1E20354765954DCE9CF70F3CA106B3DEBA6BC882C2575297AA4B98C8E42D8FBD80DDE92F4BF375DD9238AE28337624BCFC76ACE419713B1F7F3CA35D4F9A5565FBC921890A7D652C91AE7E8DA2AD289CB6616BB0F7D3DB181DAA2833F329B38C8E85BA87E19C734C0B77855D89913FF6C527F758FFF3CF33BE405C5C64B1E57E0F4F7EF042B06D871F1AFA181E51ED505622E6FD466705756DE48C81BE86748E337F6A2032C35A88A364A258F39830998AACFF3FA1ADF5960D62FC3D8AFFEE1D7D812F0049EC558DCA9644ED0A7A8BFAB58C2238346F357F6D8649105FBD1C62EB6D3E59E6B3086AEE1BD4C950535303FCE17EB74B764F6D77DDCEF05BF931228DE728001136B56960482A757E3CE14B920BAC72B5C5280EE99BFD689A2439778482A2333979F82987B8C1CA01D894C22CB4321D80A09C164D24DDEA39021F2A6E465138862ECECC2451B83A9478C5728D5FBBDCE0233792B5A27BC7E3E723D12AF6D4A5F6561179D0B6EDD3225F3A80CA5B265672647AA0E4EFBC9DB202632E18B23D57B86AD545668A9B09791FEAF168EC99BAD63ACF8D29CFB4C3E48BF4367 -20191028204729 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C56962C57 -20191029074748 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C5E6F0DD7 -20191029104921 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C601D891B -20191029115340 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C607A9FFB -20191029123325 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C60BE442B -20191029222629 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C677977AB -20191030071819 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C6D9F6A8F -20191030072920 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C6DB5BB43 -20191030132209 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C71C9F707 -20191031002135 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C794F4DFF -20191031064758 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C7DA1F51F -20191031135153 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C8253C3EB -20191031201815 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C869AF937 -20191101055219 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C8B9A2CE7 -20191101065855 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C8BFA04D3 -20191101102927 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C8D496B7F -20191101162017 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C90C40057 -20191102073643 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077C993C9B5F -20191103030038 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CA2EF80F3 -20191103040704 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CA394AF43 -20191103144920 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CAA0B72CF -20191104025539 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CB128D89F -20191104104258 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CB5D65BBB -20191104110623 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CB609F2DB -20191104113147 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CB6451277 -20191104123416 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CB6E19D8B -20191104181953 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CBA5B05EB -20191104182450 2 6 100 7679 2 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CBA5E4023 -20191104230444 2 6 100 7679 5 F606CDE6712F7C0B69FF0872BAB21EBEAEA36BE53D9E03097D8FCE89594F90ECE8E7F1D6CF9D78821617B32D0D7EE46D8BE6EAB108638001AF1F99329DE3588362EA7677FF962ABC2E4B8CFEAB07C8C88774BE6DD9DD6178CFF6A93A51287903937C9E62F060DA0615DCCB8AFE87A19B185B5B85CC3D6821FAEB3D760AF97903A46B12294F2CDEACF50EC055D68FF2DF84EC8355C0D27565AA1CA5F8517E9ACCAFE804EEF55C63B1EAE4484F821A0B92B9E68EB8A894BBB168286BAD5CE14CC2554424585B15DD70D6CE9F63DAED7F902A818B0B1BC303BF059DF20A5D382610F06676243CA0D30C544F5DE34DC983EB51219B268BC0502423BFA9C03338790B480C61230CE1558D500061057F75DCA5E8509DA30A3BBD93CA0E3D88C8CE0B78FDD9E2BFF8F3CDBF7822859E95F9B0FB1F9AC9A89BD44BDFF8012595DF79639BB49A82410F9EC687B50C5456BEA8B477F7BE5027EBD2F3FE3CEA491DF200B7667EBFF889580E47E89DCC13B841BF958FE7575D8DA4BE8D4BF9EE9908A3C8A3F110E477BA188FE1AFDF611D2E0C8D733DABEE52AECC818530C6C92EE28E0CEEEAF2A984C89F7574B5BDE62FB29C4A232642B21BF5ACAF8D6385CFF2CD4B97C48CF5080229EA4EFCAA046787630A134726A7F89BC0AF4DBD09B9BDAC79CDFD8307D39188A59F9C7BB89B45DBFCF6B3AF44A7F3F2A770DB517F7999E4EBFE0FF6F63C91BA8444B666F2300101F91ADA39012DAA4E1E96C87F1F55CC4D663FC455F57E226C8A1A53720BE73B71ABC6DE64ED339A67F883648CC507DE479CE1ACED66FFFE06829861F40E681B333A1FC00EBFB64512ADB25593BFEF23494D70A70478454DEB92ECC86485288F3FF5DE146AA289C864AA55643F278A3E20DF06CC818AA4EBEE29347131087436C57F82693375B776C1EF5D30E637684DBD17EFE4BBBBF7C14DA4FE4BFC86150553D52792D08C2A5EE35916CCBB3C0718BDD3F631B2458DB029FE32644C190492F7167E9B776793FCA8FDAF35084087FADEBA654ECDC24EECADE28B0420A1152CEEAF14628EF69D516E6074D022AE1E3B9B5260C61978E03CFFD8B61087EDBD2A09C35AD250E3265D72D8B12B4F33F490B417118CDC531349C1EA65CE5FC69B712D4228BC39141C7D4871135157CFDA899ECA2AF93FD11DAC3C5F7E77A9FA6B51092FA5F19A2A087EF03F6D2BE7F669F8E1BE72884AA6581CD90CE74141C5B827B3EB04D1F157549B9807F1214A95D5F07FBD3E47A8413EE740071F456B3780CE2E4F48CC2E499A9B4CCBB4B3D363D1FD73AC4A32F83E673AA460A9CF140994664AF6029B0113F522D45CDBFB23EFA647077CBD2DEB3F -20191105091836 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E0D0129FB -20191105100933 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E0D92A647 -20191105234826 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E171AE8D3 -20191106052238 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E1AEC5E43 -20191106071634 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E1C312BF3 -20191106092936 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E1DAE275B -20191106120421 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E1F6DBD13 -20191106122445 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E1FA1E1AB -20191107014126 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E28AC4177 -20191107144145 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E31696647 -20191107152955 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E31EAE00F -20191107170414 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E32F54973 -20191107235721 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E37818C57 -20191108191832 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E4357C06B -20191108224321 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E458BA9C7 -20191109135352 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E4D13F4BF -20191109143346 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E4D7EBEC3 -20191110001842 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E542DA06B -20191110175307 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E6046F9BF -20191110192342 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E61370307 -20191110200757 2 6 100 7679 2 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E61A90673 -20191111005215 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E64BD2F0F -20191111221634 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E728AB85F -20191112130746 2 6 100 7679 5 E67A1BA3549A22E8E5008979650D6C7742558513C6C407C4B9CC87E394E8BF9E5DE7248841813BC72DE6BB56EA086A49C69031D2521204BC8EAA0D85B4F2016A4423BF24CCC2A94B7385325A11ADD338ABEDF6B7C444870597F9B05411942D235EBA9CA762F7F2912C1540063C167FE87E0B38B1A4EEC9FA5096102F114577F8D335448B6D6DB022890A33E378EC2D70BE921782CFA0477575E3D867696F5367011BE83025E30AC6173A33A425A9830BC9BD2BC66F561A8906137F68F4F215EA7D228145E4BD5314FDC950CC9CA61523723A9079E728368A6A96193AE3488D48ED7AD61D5B3EA5E4EB6F599963B6B556C0A1D5F174EF0A99F422E665703A6A4FFC588C73DA3D07C287CD9AC5F1065FFB3FE20CCFDEDDC9BA9A39431A2FFA1F94E8B7A3EBD6FBF64BDF9A9C20577AEA1436F08DEBFBD4FB34769DAB061F7B5661E0CB2E5159FF553D7A1E25C4550725EDE6661B633D564BE574FE007177D8C2A54541780D171EB4D2C30768099B2B8F4E81DC8E9A1DCE9BCEE9E23FE7A6854C9DDA08844559A6622257C856BDD221A29A298F840EABECB4D38013FF3403C634C26FA057BB9201D96E0A7D0C07492D7455A213C44978144BAA88804F5DACD544F8F3213F31B552C7BFB9561E63E8E9CDAA1DC427DCB7358C6ADC03B433413C605C34355DFCB2A32788D1D52041957C4C9B5BA9443DC8B6D1E4F0980C4E81607EAADB26D4352BD5823872AA7496A85242A6FD50FEE7DDA4F920ED3A42FAA475936999A5CE55B96F45637AE551335237E71C9C4D8884ACCFF1A48D02999BAF6D38B42BCA344087BF1A43479C10D76E86071D2DF1D68C2E785B5C1B327EC5B112989AA5F605CC3435AC904760EF369D29BFF2C2B754ACFA892A0647588AC306B5CF44A37EDF22E063B42726EF05EF1B2DF80BE136844F0C7CDFD57FF68E66CEFF27D92C0434F292242B086E2CED408973644E9CDFF0C22462400236FD87E03AE69DBBAD4AE3E2213A8888325A16CC3A83A092D1DFB22CFD7AA5C071016862FEAE4735221C4F5F062B6D82DAA38611B0EB0E2C220F2817C50D4B886C0B408D0A1CB00A0E9F4F3CAA9A1414DFB422DFF4309CE6EA70E0AECDD2AA7ABEF84FC207C8DAAC4B5C95DBD46B954FDBE7F0B270FFBD704E7B542BFB87B231F0805AE6D5253C462C0A43B8E7AF7030BA31768E68744E51EBAE8271242834A9CF88506421B918510AD3710395D58A032D176C45FC935DA0510E88F807B7D7E2129980275B0786859E10E849B5C1DC2EFE247398362F2E868162E7BDF241B3749ACDB2BCB2705026F0A40F6E2A91348DFF8CE4FE28FDAA47AC4A5E45C42FC9A4676A0D8E7C1545A7 -20191112235240 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C09B051E7 -20191113080333 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C0DFA4497 -20191113172045 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C12AC18C7 -20191113200551 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C144987EF -20191113222215 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C15AC15DF -20191114105339 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C1D643593 -20191114122810 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C1E6B7F8F -20191114130017 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C1EBA7C07 -20191114145117 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C1FE5ED4B -20191114151102 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C2010EB4F -20191114175356 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C21C7632B -20191115033149 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C27E226FB -20191115034007 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C27EDDB17 -20191115161656 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C2FC179BB -20191115163508 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C2FE8BBD3 -20191116013312 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C35152223 -20191116104137 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C3AB548F3 -20191116131152 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C3C3644FF -20191116180544 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C3F1E201B -20191116195637 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C402E471F -20191117014351 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C42FE585F -20191117195700 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C4DBF75DF -20191117204232 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C4E2912E7 -20191118131732 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C54343CD3 -20191118210639 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C57F77453 -20191119125926 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C6021DE6B -20191119132613 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C6059AE27 -20191119133140 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C605D833F -20191119133605 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C605F151B -20191119174042 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C6292A3C3 -20191120093944 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C690A0B53 -20191120141650 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C6B4934D3 -20191120221735 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C6F3A553F -20191121110820 2 6 100 8191 5 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C75814AB7 -20191121112452 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C759A62B3 -20191122050747 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C7E3D2D43 -20191122111758 2 6 100 8191 2 D57E3B56BFA7F8444B8BF4E425C7CDA8AD8013E4403F9987C70B1B973D9478B38CD2759C98B9E195EE06098BAF739F101F8290E0FCD9DB25C5F5502A90F748ADB2AD6F0A40A38FD44F2EB548395B070B31A81216B1A2B7A5EAE6186C57C6BC574D2428BD62871A3AD9B54E6ACF35DA9F56F2291472A90BC400196FA4B033AB8D3A17C3023E5425052B5222A2755B6F7D4CEA80EC6F2BD26B72A76E37C880651AB32EE51B86B90D23B02290996988BF8767292883CCBE693A8FA065D1CE6F8496F8D3DB5661006B0180F9C020278CF96F36D0ED9242A5139FAE3E7008CCDC9F962338A7B8D41873970B4BAA183B633FAA6E5229230100F9BBD0927B4423F9840DC0544D83798B16C114C6929AF89C0797724635194B25BF53107CB65713FB08214AFBDC05AF993C3F9CFE929A92A52D3C97816C667EB79F8F26F619CFD41C1D792C9BFB825E473E510D4633063312625BD91F22E590CFF97CB5DB0AED2784CB15683C5BE6CD73201F42CD7FA28019BB60CFD088B5B2AC3CCE1A96E01167E0C5042AB744C50230CB8935BDCA020BE2A20E00CD04F8BEF55B64B1E8064C149697C1D313872E29E29931ECCF7130EDC842F44A72B2847BD5C2E438E462E28B47E11235E892690391296FABAF2FC029FD508F71719553335248746C578AF4CAE7AF768D51A5AC6E3D996A3DE66A801FAB6B8E80C66138BAB8167518FB1C50A7BEE0D5001E6F01BBCCAB83B0C43FE8103B4FFEC26CA4C820D4AA68FCDE6EECB04E31D87F3D9CC0C195B74E06F1D01CBD7E0F59CAE1FE3AB92E3AF215A752CFFD564D5BDD7853C85E129CCC25B1052A6A669BCF0AF862CB9E44B360E2BB6623DEA2160A76B9679BBA4B62C698DF07D7E042F4DE85A470832B1D7811B4B0EBDE0A8BBEF1F3F57A7CE6E8A8C4E44CF6511602824ABAA41D7F74CC2037C8477549D00A6A69D3F6A93EE6A9B2565FCAA26FFCD7A0097F6F18DE8D80533F8EAE28589EF4381B3AF7E95F183D2FA4B15AEA21BD1965479B0A604508E14DB4CC0D9288F5062D3DA5C33B0295F6A9D9F1AD935AA51C0F7811D19FFACF5514E9BF5D5A545FA318CC5F6BA875BEEDB9E4953BB2285D391E12AC37DD0BC41871CC9D74D546EABC0B20243685633BDA2020419C3DBF7E945D4359DCF4531C7E74C1B0058C6248E4FA9FC87E098A393DB2691EAF0AF4CEA5F6B5AE6175A3EC913A6B2E92BAB9CC9050F765EAD13669CD564345AD9E1BDE7994C792BD01DF349D1D3C72E3FD3EE91CA3372093B6870526BDE5AAEF2B4E0CE260D37CC479EC8162650FE9FA8677DFCCBDB74EE3872F248780F4197D2E56681B04327447DB13AF873CD3988C2B700E1BEB238B644DD53D814537324B83F47E32D891DB4931B4829B53B3195DDBF79780679FAEB0286B451A7DCECC22E949E9A38464F41F17E6AB426337F7ECDA9C8060C9F3 -20191122234859 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DAF157FE93 -20191123201736 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DAFCEA8A33 -20191124005345 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DAFF68AA23 -20191124051934 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB01DD44F3 -20191124175034 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB08BB417B -20191124192622 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB0982C193 -20191124193739 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB099260CF -20191126025656 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB17A0CF23 -20191126161223 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB1EB9E26B -20191126172830 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB1F5ED407 -20191126180617 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB1FAB6403 -20191127080548 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB2553EA77 -20191127104644 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB2687A623 -20191128121203 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB33239063 -20191128204858 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB378CE753 -20191128233841 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB38F8E4F7 -20191129040635 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB3A6C67AB -20191129112243 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB3C63FFFB -20191129184106 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB3F9FFF83 -20191129203059 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB4088D083 -20191129215650 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB4136E127 -20191130171835 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB4AD7F26B -20191130173733 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB4AF317A3 -20191201235534 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB56C3B47B -20191202030655 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB58188EDB -20191202063054 2 6 100 8191 2 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB59B534A3 -20191203125547 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB685D06E7 -20191203140741 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB68EF9D27 -20191203185147 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB6B3D290F -20191203211916 2 6 100 8191 5 F4ED1ADCB74B5BB2954322A6646A37DE50F1FEB9359C83B8837A73263FE7BE52044678EE53D4CDB16268F07754FC0C29BAB897CC643E127AF81546E061B8A0E9B357E710DFAF666BD09AE898B40EBCA5A9E77A530CC677B5D019AD2D0292733F496B0624F430F99AE1BB8AF400D2A72CEE17CBAD9C3E517D80039E6A7F6588319FF3BE22BA517530486A4F10BAB6281FE724B0B0FB785D9733B7095245355226D4B653D3E4F7AAF16E63E523A1A6F092919882203281A2A348BE3F5B601C7BC1C35057B021E8916C71FCCFF9A694D4952D89BF0502FA7A1F044B9062514B636A10510DCB953F46596D592887FB782FD24C44A2C4CF4137986A219DDD909BB34A05719DDA26B402302BC6127B46DDD2F93B6E1155BC4F994F7FFE58E5FF3A6688FD14AB60A9DC804A88871236097275E7D47F71F8C9CDBA687BA04E9E67147E80C56FC04184D4F8BC3F1B8CDB659D99D6B8DA26B954C0315BE6552F27DBF56480A3DDCD88B9C5AE487A903F3EACCD53CE09C7D96DB5E77B57123B81E684D7E3AF19AAF7FD810DA177481EE4FE6323B4FBFBBFD694AC14BFBFFDE6416ABB497C00FA56C29D440AC8E7B464600BA71E814BD25F25BC79628F61B01E5CDB5313B31CAA4EAC88C5D9BAA91FCB3CA0C2F7AE477C17B63033329967E6C92DE4AA47C5A1D376FF71D8B88DEADAD8E7D6549DB04F92EADF16047909D5A11E4AE819194D4B11B242990AD47A1CD55CDCEA6D58496899713D410899A744B81E3890C745DDC916ED878BCA835A278E4C95198B06203DFC9F01124F2C77A392868360410D7AC4D5A21A615480DF3CB2BDB11F3E1D2A0E81C59912563C52CAF4CB71039B3A949EE582A3F5909A7853B15B523BBB798C70B8D9159A52EBF8A433A8C8CB2CA635CEA770AEC861D8BEB687335AA775ED7CDCDA49A0A8B1EF6900204225C00E830026A37805E57D5629BB4B646A1CF435AC83A10E98CEC0F756B7C4F487FD714AAD76F662155E3D755FAF903B26581A7696420C4A77A07F10957D89551892813A0D20FEDFFE90829581D1F1C39863207AC1F1E01691BFFACFF3273679CA8241D77F74CC193170BA2CC33A9E9571FFF86412F892396EE936F5EB58A0649934B98479C3306988264D5CA4AF726B3BFBB24FF552A8C1AFEE336B83BC3070357721B3453A13E37341D01FDD779DC807BBA07F26D3372C58BF5828F1A48F3E4D7CF83E629256CBD4ED91BA03EB00D666C3957196F5034D3A91F19FB3E06DA1293B4635A88D5CD49AE5DFA8377C717865B72F66407A83EAA4F6A7077CAC4C220FEBB74B2160A98051655D67403C15E54C0227C63F95F806A0BF2C57D7522272A572F1FD5761432DB53A9CB91EFE65A3E33E090C913EB1BCF45CB9518D818DF39EE8FA1BE8B7338902714CD2EF0B918066ED0573CB6E347908A097F48266D921A6DB6C6CE027 +20200227022907 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A5D2A1AB +20200227023015 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A5E70AEB +20200227023031 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A5FCC5F3 +20200227023127 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A6503737 +20200227023144 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A66A2FBB +20200227023150 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A66D7443 +20200227023222 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A69A79BF +20200227023252 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A6CDB577 +20200227023257 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A6CE48A7 +20200227023317 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A6E457D3 +20200227023359 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A70D7E23 +20200227023546 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A76B9A27 +20200227023624 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A7957D9B +20200227023645 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A7A54E7B +20200227023732 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A7AA8E03 +20200227024118 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A83E307B +20200227024150 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A8735923 +20200227024216 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A890B0C3 +20200227024317 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A8ECA377 +20200227024323 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A8F09443 +20200227024339 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A9083FE3 +20200227024354 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A91CBC2B +20200227024401 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A92295AF +20200227024451 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A96B524F +20200227024519 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A9893C5F +20200227024616 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43A9DF0DE3 +20200227024648 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AA1356E7 +20200227024719 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AA391F8F +20200227024740 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AA5A232B +20200227024759 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AA76C92F +20200227024841 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AAB2E483 +20200227024942 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AB0D731B +20200227024953 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AB1A9FE7 +20200227025000 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AB22AF6F +20200227025133 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43ABA90D27 +20200227025147 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43ABBC77EB +20200227025251 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AC1EA27F +20200227025455 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43ACE67607 +20200227025504 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43ACEC2507 +20200227025617 2 6 100 2047 5 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AD55383F +20200227025658 2 6 100 2047 2 E5137884F699D3C3A5C899C39CE0DF08A0DECD4DCC6DAD746BDB407C8320AC77CA92EFCDE8EE708B23789C26A9DF03A9C1383CB3B0F8CE764F223899197124958E6C82CFE52CDA5F9DFDF1B89AF0F006F175049BA9055D8A9B3A6603018F2B00AD4524A7F699A5210047C116087FB2C186194F4DC78C95568B9A95CD29B4BD6BC8D71FF5D520E238693B41481C66EEB53CE30995CEF4835138A6A998EF39C879B3E3939FBC6CA7D1BCFCE7BDE8A9AA5CB7E00B7CD7FA83B754275B231FD808BB11A52E493BBC7CF063C19220D47448FDD6F72A7CC5799B3FFEC10D75C6240B378CAB489C2D3AB7E66D6921F0A4441A1CC0F7269EAAF775E8B2F24A43AD9D09CB +20200227025748 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD988C6223F +20200227025916 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD989456A23 +20200227025954 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98982F93B +20200227030134 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98A1A5BD7 +20200227030145 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98A276D4F +20200227030156 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98A35BBCB +20200227030205 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98A3A766F +20200227030254 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98A8957DB +20200227030322 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98AA57A4B +20200227030336 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98AB5D4FB +20200227030430 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98B0921AF +20200227030443 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98B1ADA93 +20200227030556 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98B8D5E93 +20200227030619 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98BA3DE33 +20200227030707 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98BF5B1FB +20200227030728 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98C0DCC3B +20200227030738 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98C19C5C3 +20200227030750 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98C2994E7 +20200227030837 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98C6D2993 +20200227030928 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98CB6E833 +20200227031020 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98CFA7F73 +20200227031051 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98D315F23 +20200227031130 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98D61499F +20200227031151 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98D7FD90F +20200227031214 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98D94476B +20200227031250 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98DD00E53 +20200227031339 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98E1E199F +20200227031416 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98E4B1F93 +20200227031635 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98F2240D3 +20200227031653 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98F3EADE3 +20200227031817 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98FB2594B +20200227031826 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98FB9CA6F +20200227031845 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD98FD75E3F +20200227031937 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD99022227B +20200227031944 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD990262A33 +20200227031950 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD9902A81E3 +20200227031955 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD9902AEB73 +20200227032012 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD990348E1B +20200227032023 2 6 100 2047 5 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD9903B6057 +20200227032120 2 6 100 2047 2 C3A05E8BC687376881415BEB6C1506DA767E191DB4C5F4C587A839B341C2271B95F1B52E48C5CFF818CECB2E9BFBD3DB4B282B0D334A4992CF173E7A66B94D8B55F15CB610D5287917131C7CF4D966572EA2E0F1D6A89DFB54FB8B73B9B504D095446B8BA1C2EF49C8BC60D0074E3A25D1EC67FF95FD26D0A60CE0D692E32CB7326A8E5F698179DDE616D758DCB3F9F100623B23A3CF1699914515F5F97476AD124229CE5745A94417339C5D15F406A7D1A6D7BAB235E50D4A998DBD52B72347DB4870BD4D7CD1D5BE6E1D8E54381298791146FFACA089A066C9304067CA0CB8CF493C89EFAEA9836553F05187BA74DE1D7862392B43A94D439B3FD9908EA19B +20200227032956 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA31DFAF3F +20200227033345 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3252345F +20200227033438 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA32676B4F +20200227033631 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA32A2AF93 +20200227033648 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA32A57513 +20200227033939 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA32FDB38B +20200227034338 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA337FBEBB +20200227034832 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA341DDB0F +20200227035633 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3531B9A3 +20200227035941 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA359F1EBB +20200227040026 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA35B2A26F +20200227040140 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA35D7858B +20200227040536 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA36567783 +20200227041037 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA36F6CA8F +20200227041504 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3785E44F +20200227041915 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3808D25F +20200227042019 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3824C37F +20200227042213 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA385DC613 +20200227042334 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA38849CEB +20200227043140 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA39923EB3 +20200227043516 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3A0635DB +20200227044359 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3B392D4F +20200227045601 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3CCCDC47 +20200227045738 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3CFCA5F3 +20200227045900 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3D24B39F +20200227050201 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3D83C633 +20200227050551 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3DFE5163 +20200227051236 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3ED9C2F7 +20200227051737 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3F7F3323 +20200227051844 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3FA0D7E7 +20200227052045 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3FDE75DB +20200227052157 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA3FFFCD0B +20200227052559 2 6 100 3071 5 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA407E7607 +20200227052656 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA40963EDB +20200227053254 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA415E3B2B +20200227053802 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA4208CBCB +20200227054020 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA424BC4CB +20200227054242 2 6 100 3071 2 DCBD1F34999D3EC980A7AEBD1943B18AFB4904E85DB641E8660A4AE3671C152EBB36BED44E5DA6D647F6232C29EE3FF3C20DFDB18D72B705E57F9B23636AF36E395D68651A0D223C816BF904E29134F49667D205B5EB03F613C24B65E386CB8EEE384AF41BDCF4373C885780C3AC2131584DF97F62A50C7E9169A52DC71B8D9F80FBFBEEC935C01D0375AD8BCA0E5C84A041D0BF80230D3AC15E09C2629326E59F70FAD8606BDFB3901284844D4C00155C48301F4E91384454852D47D2D0D992123E42130E6F1F45E429A4C52AFF03522B5C68307B4B1082E7868D8241D143A156C2E40F45A5E34C3D2397A91FF195C49DBABB490900238B6F5801B876EE1EC64D8E20F95C1F409F82D70C7C24DB5EEBACD6D56F0486E49DB009B859F2E757679D5499295783E1080C1369B373C481EA3295C9B8D46F8D10F29C50774959490DBD068D1A81BC118606BF8E58050B7F0D88929678D6A47FDAFE506D91FE5F61D4B2EC286CCF1AD616A875819C1BEE6536D24DAEB7DBAC87C2A7A771EA42946B7B +20200227054918 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46617A143 +20200227055927 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46766DBEB +20200227060242 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E467D1E903 +20200227060411 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E467F9B8CF +20200227060700 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E468561F7B +20200227060843 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46889B29F +20200227061342 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E469324A4F +20200227061525 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46967398B +20200227061630 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E469871133 +20200227061736 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E469A5C023 +20200227061919 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E469DFD25B +20200227062156 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46A4225DB +20200227062610 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46AE7835F +20200227062733 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46B158F5B +20200227063025 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46B8351EB +20200227063206 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46BBA58CB +20200227063226 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46BBEE61B +20200227063414 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46BFF08A3 +20200227063436 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46C048EDB +20200227063458 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46C0B9BA3 +20200227064340 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46D585367 +20200227064522 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46D8D449B +20200227064747 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46DD850B3 +20200227064951 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46E17A897 +20200227065115 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46E41058F +20200227070122 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46F9C7E5F +20200227070147 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46FA4963F +20200227070247 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E46FC0F617 +20200227070844 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E470861EE3 +20200227071233 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E471071DF3 +20200227072256 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E4726F3A13 +20200227072700 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E472F54A5B +20200227073459 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E47401DC37 +20200227073831 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E474725CAF +20200227074056 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E474BE84D7 +20200227074215 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E474E1A47F +20200227074642 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E47575BDFB +20200227074700 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E47579CADB +20200227075116 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E4760314A7 +20200227075407 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E4765B8EFB +20200227075829 2 6 100 3071 5 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E476EF083F +20200227075857 2 6 100 3071 2 EAF378AA0E2C586E9556B81261F829EE5A8F5F5E6E7A2FC92544555E006535C9EDABC5553D5FE43E8DC0886AC3788355B7B7B8FB8EE5220404D022955DBB3C1CFEB9E3163F80DE6DBECA51E2F2AB680799E4227F29894FA0343483021CF475957D82EBAB1F9E270F681A28DF7E37DDA5398B1DE5E0613048B7C52C349BEF4F11A7455D2322589F593160B2AEF33286DE2C267E6C17FC027253BE1CB1254231F8AB2B1232D37E8E4374D00BAF10FB961F88CD80406AC44EBCC29DEB857BE1F400EB532FC49B575379E56593CE3B609D6A19FAF9751A9BB30CFF6C0B2892612BC313F5966741E913B97BF060B8320734BC5030A9A33110E15967D826BAAC7CB3A2E3A0B818FEF3410BF0D5230D1BC7EC86798DBCA14544AC5D956CB0B08888EACCD57D1E50C48D6511E9FF562F177E03ED08219169FDD999FA75595D67081EEC8192AF3855CADEA45B0122F042D03E0599834190F5C5A5E0B2C414A65AB21B91D32DBFDF02C247D6F085C6AC55114A62D1EC6BA06964FE5283226B37E476FA748B +20200227082813 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB741DABA73 +20200227085254 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7435962FF +20200227085753 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB743A213E7 +20200227090042 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB743C75A03 +20200227090234 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB743DE5FFB +20200227090848 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7443ADF5B +20200227093007 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7458D5F63 +20200227094856 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB746B8906F +20200227101124 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7480F5003 +20200227101730 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7486988BB +20200227103113 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74937A0CB +20200227104420 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74A04F623 +20200227104854 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74A45CB4F +20200227110836 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74B74FEEB +20200227111613 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74BE3FB7F +20200227112749 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74C93FE2F +20200227114309 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74D83C6DF +20200227115500 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74E39954B +20200227115811 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74E610523 +20200227115926 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74E6BF7B3 +20200227121313 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74F3A3303 +20200227121624 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74F621F43 +20200227121855 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB74F826A0B +20200227123033 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7502D388B +20200227130625 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7525AE2F3 +20200227135640 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB755543337 +20200227140747 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB755FCE54B +20200227141645 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB756869BEF +20200227142156 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB756C91ECF +20200227143711 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75795756F +20200227144742 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75832B00F +20200227150218 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7590B9D1B +20200227150317 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75911AF63 +20200227153455 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75AFB3177 +20200227154347 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75B7E69BB +20200227154742 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75BB2636F +20200227155533 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75C283F5F +20200227155629 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75C2FB09B +20200227161922 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75D8A8C4B +20200227163034 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75E3342C7 +20200227163725 2 6 100 4095 5 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75E9424E7 +20200227165111 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB75F623DC3 +20200227170513 2 6 100 4095 2 DDFF38E32E0309D5459129AFA6C2F640C7125B85084C79BDD7042DA6E39D4A0DA4A671588016428ECAEC0F6BCC1A95E4B2BE518B7766CD0AC4674949D48B088492394DD9283C09D71CB4F4306E4CD27390575EBF2934E1C97AF880146F0D090DAB3AE1B679CF30AA52D307A8C64382C93F11AF73CAC171741A1C898CD79A680697D1A17A3D63F8C92A9C088E9E490D753D3A4811A8CAABEC2D80C62D66F56660995BC6D82BCCE18C4C6287B848F239C40467BB7EB3B7EB5489A7417D9DE8825FA86D16602AEF9BD3A523DB96B071C2BED3239B5C69AD772A39B18543F517F8BF49E6B5AE875A37E117010E8CA59947571DDC329FFD137998EC151B367525D0647001C4DADB2B95FBA9657A5619A0445E627EC6F71B4A3239E01ED76D85CBCAFFE92283E9408F770D9B8267DF5031C74C9F16CF43EB10881369DA46E692ACB2F94E9136FDA7FF58F54FFAD5749F79E5521D4358A0984AEC1B49C678FA6D6379905ABE4D245EBE854A09282945B4B62EDBDDF30954FBB9E40D751BBCD82ABE4BDC98274CB158F977802ED5E7F267A3F1EE0E6259215AD75798A6088D9AD6ACF4DF5DAA8474D1C8166AE244176D5AA2A7B2697C7C059DF78B07ACC2D47083F5058885E29FD9352243A5643C8237FBEF77F77AEEE32EC6455B4DB32A30ED02409FCBEF0C1C988876B0CBC85C89FA062824E1D35512E8C7731843CA7F6EB7602FCE73 +20200227171514 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921518EE99203 +20200227180811 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151924BA233 +20200227184341 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519490B137 +20200227184640 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215194B6E91B +20200227185707 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215195546D0B +20200227192438 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215196FF1A63 +20200227192937 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215197470C5F +20200227193545 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215197A3CACB +20200227193904 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB9215197CFA597 +20200227201541 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519A1D5807 +20200227201830 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519A3EDD33 +20200227202555 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519AAFD1D3 +20200227202936 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519AE21FCB +20200227203051 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519AEDB593 +20200227203917 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519B6FE6A3 +20200227205155 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519C3628EB +20200227210720 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519D1EC08B +20200227211425 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519D892927 +20200227211637 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519DA3F85B +20200227212024 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519DD7AC4F +20200227212617 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519E2E0AD3 +20200227213638 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519ECA5D23 +20200227213802 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519ED8B3EB +20200227215450 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB921519FDD53D3 +20200227221218 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A0ECC74F +20200227221341 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A0FA2D4B +20200227222437 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A19ED9DB +20200227223018 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A1F0CA5F +20200227223552 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A2441737 +20200227224041 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A2876443 +20200227225049 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A31D69A7 +20200227225259 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A337A56F +20200227225746 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A37D3827 +20200227230135 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A3AF483F +20200227230918 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A41FC5AB +20200227232340 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A4FCC2DF +20200227232424 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A4FEF907 +20200228001546 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A82A356F +20200228002300 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151A8959297 +20200228010138 2 6 100 4095 2 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151AAEFD82B +20200228010636 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151AB3B04D7 +20200228012037 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151AC0DBACF +20200228022145 2 6 100 4095 5 C7D5773A9200CD53CB4C9244931BB61A711BA1EA3735C53C933074E733E2DAFBBC1F737A508EA82790EF95F7989A889A8FFBC707E9A88090ED5FBA0F485638CBAC547DE653E9D80D09E8795B68C70570547E49D611E08F9D47AEFC22AE8D81D8863CAC593896D4B126CA806247C2954360BDAB96247050BE8C3D7E39C3C2D5B0C74811B0AC00CB338A3F48F7A799F86C563DE5EDAF8BE8A6220106899315714214FBDC466B240833E37029585311F49D8837BCC48A07CA56B505A9D42F14363C3950AB9F768307C2B627FA8DE1263663C251706BFA2F23C5B85CEBC3AFA399FC791D20F1B94C5DFD3E78665FE6846C8E213136E8CA5A24930DAE9EFEBD54616BB3EA08E5FB9346098F42F1593A5D5F1E3B73FE184F5CD674BE7F0C46171E0F83268B3C231C9B552449FA882EAA67EFA52399A3867DFD17248CF52450523777260F4FFE155AE5838A4F883EA27DE00AECE89B984F185A795C34DD71F4F424F919D7F32D48F2FBC9FBE41E631E6443397AA5E75B6AAC98619A9241A8D162DCBFD8EB1056E8ED62A655A2D50FAA162EF86DA4DEA51ECB168193F1C34C558335D27EC393C6AA1B789A23BBC08781011B2FCB2A02A7C33632BB33D1D5FB72E5C9FE9BEDEA1FC4079638D7FD6FFD965CF01ADB026D4638CE0A0D20E47BA0D9AD72ED5136A562AE955374E2A80809076AD250D7E8F59854A820BA342FB92151AE028CF7 +20200228024919 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3C1F349A3 +20200228034540 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3C283A14B +20200228094553 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3C9D8E343 +20200228122045 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3CD2640CB +20200304105045 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D032E31F +20200304111455 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D0B6997B +20200304114010 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D140C2DF +20200304121904 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D2192573 +20200304123148 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D25B4313 +20200304123330 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D25B8FE7 +20200304132134 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D363A65B +20200304153236 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D651690B +20200304170756 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D8694EF3 +20200304175528 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D96C51EF +20200304175824 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3D972E9E7 +20200304192109 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3DB488D03 +20200305083948 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E1E947A7 +20200305094127 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E337E7CF +20200305112549 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E5787ED7 +20200305114326 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E5CC07BB +20200305125429 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E74D719B +20200305133907 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E837E803 +20200305143048 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E9457303 +20200305145210 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3E9AE72AF +20200305151101 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3EA0B73AB +20200305173752 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3ED2976C3 +20200305182017 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3EE08294F +20200305183227 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3EE448B23 +20200305205936 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3F16DF2CB +20200305230320 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3F412E2BB +20200306003322 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3F5F45EB3 +20200306005357 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3F65E4A6F +20200306052421 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3FC141813 +20200306071740 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B3FE6DC957 +20200306093244 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B4014328CB +20200306114315 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B403F2AAAF +20200306115622 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B404300D27 +20200306115809 2 6 100 6143 5 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B40430C46F +20200306123631 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B404FB7883 +20200306155841 2 6 100 6143 2 F7E8D9659B6A380E77600433F564EB23739AF15BF41262D170EC8A14567AE58A0465E39314F019B721FE6F113293EF987DCB177ADD8B7C2E547D393B4873E903C4616BA56468A20ABBA70DCDE1E0B5AA01164D612A1996ECA5BF3E7EFF9D94D54066B56057AE148281B5CC663E6D2979FC8B0C1EE9885F58E944E3A28906BBF202A7DB476CA39AD7FF03D3471379305B798A43EE4DBADB53E5994519C2A799D6C52F1FEDD29C8316DA7190A1277702C04BF5DE331D013DD89C24BE50DEDFA9C5E017E873271FB2E270BD563B6F88391EF560307AE8AFEF8290E60FB57ADF3DE8B9062EA0DAC5CC7EE8900EB2F98023B8655CC5646BDF37C43B64EBEC8918E2BABDA6360C74CBBD6E6986B1E506544F7EEBBB275AF18E5A03E704EE4C5459248A23571F724E1DB11F801F2110A813E14DD524358B4F8B0029164C1640D58D6EDC820CA8A8D79C76106BC3CE8345423E640F2E945C24DF557E1203988C085CB62982AC65F567127289B1CD56961305143E5386BCC75454B3C4BB0870E522E38F8C008418897E25F47ED03CF7B10E40EB7CB0153CF6D22CFCD80734FF85266E63FFD3F09B64195C075B50D65F1E0CC73CE5369A6B0E7D4A05F5F4408EBADDB2C21F76A8FF8E800A828AB23089414A6F5DB04F38FD22EA3A4F77F31C35C55D22B38B76DF5C05E6886B8D88C7A014B2A23D4663978363A75C17B97F51BE8C6A55AA6432BE8FBD80220A99DBD897AC1A545690308C5FBED26D5A074CA38D03C5CE904C86DE6BC2B64B4B7E21EB0244FF37EEBB5873296B440B5059816A0E2BA9A7663B84C3ACB607909F4108249F9949FCBFF8FB242012ECFD26C931FB9BE3C93A524C623E41EBF29976B8594688A73CDC36F53B3FC3AB8EA1DEC8A8226DB05D2D90FA523EC62FF03BA659F5D1EB6D6250ECD3E70E06D3E3BD4CCDB78D31BE96F9B8AC679C7341F9E40A3B38727FEC13077393D30C5BE613262C1CCE0C85517CA32D56B4B41CB122DDB39DDFCE5292B2B887554D24616CD1E225D2A79BB6E6FCEB83E231A7DDF680E6A1E3C3E201AB45DA7261D3359434778459F643FA67B4091B35AB +20200306171429 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526BA783157 +20200306192708 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526BD730693 +20200306193640 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526BDA39813 +20200306200518 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526BE4254B7 +20200306224443 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526C1D59903 +20200307001909 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526C3EFBF1B +20200307015658 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526C6174D0F +20200307031316 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526C7C7F63B +20200307045138 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526C9FD8D93 +20200307095446 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D0AC7613 +20200307141219 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D6467463 +20200307141549 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D65211FF +20200307150658 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D7636293 +20200307152317 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D7B5C68B +20200307160123 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D8814873 +20200307163910 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526D9511B93 +20200307211457 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526DF2AC807 +20200307221749 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526E0727157 +20200308011553 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526E440D17F +20200308035011 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526E79AC177 +20200308050733 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526E93970AF +20200308080136 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526ECED5C7B +20200308102232 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526EFDD20EB +20200308103627 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F01E61C3 +20200308124828 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F2DFA4EF +20200308152719 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F6336937 +20200308160131 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F6E350AB +20200308164518 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F7C6DB3F +20200308175233 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526F910C19B +20200308195051 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526FB70712F +20200308200253 2 6 100 6143 5 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526FBA523E7 +20200308202652 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526FC156CA3 +20200308203457 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526FC390FEB +20200308204237 2 6 100 6143 2 F3D69BF99011E14ADF3A48E2FE265E067E9E02590D657BD9B87EF896253C2D3E138DD0B1290D92C9E3897C64E6B5D68CC524F18F073D39A1DC53562764B08A71A10564F53CE21A7428EE3E9801773D4E427909A240AE149342F596C2EF87414DBC486DF52C9F4015FD6B6192B77E91590E85BEDD079D9A5C273ED2544352BF913F1824D15B7CE331B5895E7DABB1E932FE9416CCC087E911E0952AE243F1F2FD43C9FF8B294330ED47B38A400A89144A87E461EC6B561654D6D3B5036A412358D781C6AE935901E71C7051FCA3F4BB0049272AC9F1B43847ED0CCA1F8A4670D2378F1AE1338B00D107ED004FB86168512172360F2D40B8F6BFB9E3721A74F637C916AA434DA842009BF9ABE9CE7942A0394042E338C8E61A032440292472D2B3AF3CC5396C84F14DAC115400D3D2FE72E29DD6FC98968523167E853550F8AF4684E70FF48431950DA69958CB9D3D0A03821249739EB909A2E78EB80F651C0553598DD4345ED9F21436D7A49DFA774F15817980CFD72EEE4620BA713D6BF81A953BABE83F5E292A099F07749ECFF6E2258D48F239DD1D0951DE9C3AE22B00098A510FF5230C8CFFFC8B9BE76F1904A05649FD0766D94038ED4AB901433FEEA667D196B7E0242620C6895725DA782234CDA8D1BD49FA586BEB793D2CBB6D3DC8B8FC18992393CA84923FD17774C82EE67D46050910A8D3B823EB253B9A73DBF388DC91DA2A6F14E92D7DF58E2F7AE3D6DAEF74ACEF7B39F068D4E895E6D0020E84AC0095C0991D11F09E02DC024C22A41809898662B58DE47649736CA74F4AA0A2F2B8E09C3B154D1904B82337881030DD9699BD397BE9CD4DC152BD097F3078B69F47465C4B787232227E4F7966E021FBB3F974182022BC35C415BE677C96B08E1A7DD1C3810EF28AD6975730167365DD8335993F96529F36DE245736358E9F9360EB53494247E382496380A006F077F6A1B42F72ED63B7B22CA0D10A410194A2D714C974142E86DF6639BC37714564983322EF900F0E0CA785907DECF7C9557056E09DC242E10D69C3EB604BF96DC2BBE1F69203EF664EA68CD23526FC547E5B +20200309092747 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB469CBC603 +20200309132310 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB46CBEF1B7 +20200309170440 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB46F794A2F +20200309175340 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB47010DC3B +20200309202152 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB471DCF32F +20200309224536 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB473A874CB +20200310025444 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB476C22A9B +20200310062019 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB479486FC7 +20200310082852 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB47AD3C293 +20200310111216 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB47CD0BD7B +20200310180600 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB481D17503 +20200311015151 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB486E03C8B +20200311023932 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB487717827 +20200311110336 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB48D9BBC13 +20200311182436 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB492FC11BB +20200312191341 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4A4A6DB8F +20200312210435 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4A5F07D3F +20200313061025 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4AA98C3EB +20200313104943 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4ABB58143 +20200313131537 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4ACFC1F93 +20200313162830 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4AEB1D103 +20200313193630 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4B0562167 +20200313204400 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4B0E7687F +20200313205856 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4B100B58B +20200314035540 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4B4AAAE3F +20200314061326 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4B5BFDBA7 +20200315011135 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4BD31F073 +20200315110837 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4C26F444F +20200315161923 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4C4B91073 +20200316051743 2 6 100 7679 2 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4CAECF90B +20200316125128 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4CE2FC1E7 +20200316153032 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4CF8D33EF +20200316171946 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4D07EA9FF +20200316174220 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4D0A81D8F +20200316202625 2 6 100 7679 5 F9B9E3DF0669078220C98F6E1775CAE12B5D95EF20D9491DDDFC0DFBA8EE09FD43F58BA934B719A06ECFF9646CA90998726E6FBDC6DB663F3BE44CF10A44B9D2DD7B01682B867206E6A67FE77170050860206AE5980778EA44104698A52D4D57D2AE0B98826DD3E98CB26E3CF0F044546CA7A97505E68983B439E27EE64AAB26D9FAB324CBADE29FBF733AF761D5CBA8E15D906F992080A1A725D65DD85CCDF0B00CCD5D44952C7D46CC514F6D34DD225F26B5CCFB2EB26077A854C19585DD40F4373FE41626532D4753C3617395FDF26FAAE36A6BD0D9009A7F9086AE9B150BD4712B4672ABACF3EC652B972885D8C6C858C93FA42B72E48EFB055E25828CF6FBF609BA25A589B79E0B64DB63F971C6C06103696A359338034A1FB53E0B601FCBDB8CB6BE8DA048C4D9CEA7EA4A458FA64A87B788543854D94977330FEBC9BB09855083ED12C13858DED10C17C19412C7AF9412F4FE952322D80FC9B26842B1FE1859E670FB047390669D81225409853A3E3CCEE979D1120F4F3D833C49A7F8EA673FA68ACB33FFFC3B56A3F277D237F566F5A342C79B3E40EBEBD6E570B1AED4845B353995C7B758CFD4875A799F652122648618AC29D583E04D772FB6739F69D5E4DBFF2BD7B3468729E1ED90C9C523C36912B2EBC69199A5E7D0982867536275332B62C1AD6F07F1825BE66CDC5C99427268B6D1E754A90AF36F49C136E40455866B92FBEF1A298C3A3EFDB6F0F459F5E885D2C0B74C4C7347430AAD7EF86BFA21F8D38CAC911171802D645A73B5249334E26B804F47A012DE0FE1CF4745F33A4A5882DCA984E253E6B16B9A8A15541F65270BFB61A64EFE9BDBBFE4205B1F4FFF5FD75EF15D17F3CBB89651E88866A2AD67D0BD7B21B4495406B0F7A083AB155D37497CC81E4F360F39DF5A26C40662176ACB041805614DD761C619282E2719C29693050058E6FA82FF4237E86A408ADB3DDC5ADC0D770B3E5D1861B669FCEB53D432A5928AB547040CF2044B3164573AE36C52DE160C2F34B0FC18B1C5E53DE1ACF886086064AAE3566D2AC9E00EFED873A201F0D14FC0DFDCF40ED380E12F9CD3D65F944D888D1FFB0F0ADF56CDCBC3036FBA03AB05944D37F24917DF3E18B9EE06B1AFDB385FBBC9425D414849B0FE0BF8D101669341EA388B899ECA0BC7FF46200CC64E0A8480C9B55E71D2A3AAB11FB5D9E2278016E8BCE6901A87B8D993F8AEE78698D6FD13D2E26873F3DA86F0983AB151E921C0A0308ECA824E32FBBF2E8F1BC4E0BEC0013BA6B89BB61F495FAAB142B782BC59FB4B15EBD4DF155A56B07F7E64C4732DB1BF21E03DD68DACABB778E97C74380E7BB4D21FB857 +20200317144528 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6917B8A583 +20200317172320 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69194AFCCB +20200317211821 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D691BAE756B +20200318020947 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D691E88D40B +20200318132137 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69243D6E83 +20200318164449 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D692641EA1F +20200318165632 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D692656A5EB +20200318233140 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D692A61B1F7 +20200319003005 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D692AEDB987 +20200319094041 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69307F8B33 +20200319150358 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6933B4B75F +20200319173225 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69352DD107 +20200319174751 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69354C2B7F +20200320033350 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6938CB4C9F +20200320090847 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D693C17966F +20200321110636 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D694B3E8EEF +20200321132757 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D694C8DCF73 +20200322034802 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69549685F7 +20200322064543 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6956401F07 +20200322080953 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69570A66EB +20200322105224 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69588D739F +20200322200820 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D695D952E9B +20200322211734 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D695E28F8A3 +20200323000631 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D695F9BBADF +20200323010937 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69601E6443 +20200323081041 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D696401E163 +20200323141348 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6967527EB7 +20200323182024 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69698E2947 +20200323183420 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D6969A6188B +20200323200741 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D696A775C93 +20200324000150 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D696C9A9E77 +20200324021150 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D696DC85C1B +20200324041431 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D696EE23C2F +20200324100523 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69721212EF +20200324110629 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D69729D197B +20200325070252 2 6 100 7679 5 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D697D6E57F7 +20200325073428 2 6 100 7679 2 D6B6711FEDD0DAB74BE347B82AE33FB203A966E712D108C27D2983732928351D8E0B14DB0377CA10A9D079F1D76AB94AB983A67C01CADC4EEDC12F452A214B690C3823B59D05B8967A9C5FB80A78CA705620E04FD35D7BC8636A0456F5015C75B2ED2AEE4A50ED3224FB8BDEECE5C21DFC8703240AC287E4E218710091A76D19EA96FE36FB67547F45040AB5DF812D5A4391E41147087072901BE7E6618F41C2D5868424B7EC12E122A036FB5E504651DF79A120CF6698D983FD59F0203E225DE8508D72DCAA6D93492FC574B73B589189D127CF23EDFD7B319C2222239641590C6F66D25C3AD092527FBDE254131F5C13A70BC2C382671E4B940C755B617854CD3A50941DC652A8F20647C638E5F0977EA881D4770CC8381AE551A745363183752830BF4650C3741FFA8F0ED13CE0190963AFA40B61B2B9CCBD07C49A22CD6C229D43AB2E02CE5A8D2CCE45C22E237F8679D10D2543BDA0407FE3011B211B331426ACCE3B4D7DC8626B4C7D713479170BA6DC9A34F404D1C6A3EA7C04634CE61A032FC967D212B99E521CA58B7EA0E560095F1E39603C1FED48F8ED21E4D7B2D3D6F9CB34387BAD472097FC3C24203991ADE41EFDADE145D9B36E87DF128176951D3AFA12C586585C230F4DE23973B14B0291FB99A2527B87A705228DC2F0C27E6C6D01FA36E231A076C5D256B2D730424EDA55916FA3DE5E6AC1EAA5EF7FFFCF57C5577195EBBD5C3AA0448BE83BFC6853AAF9B48FA1289B276C931D4E472FF04428D02EADF12733C1E446B2DD0F1B30D1BEB4E5F36F6FF6438E7B5C51093BAED1AD02AF353DE0F447C38C1F7D10D3C6CD56DBB8EF4374E5B296BCFC2B926AC19542649DA903992F0DB5F1F41A839179F753921C9814C07924097BD850BE07A0A6ED5EECA31D391154055012C48C8000CA03790889670C2E4BE1BCE6C854C4FAB1004CC127103E59C4BF55C7A290BD44BF9EE06C18557C07D2A36D8FCDE4E1F17AD73FA570112DB3F881AD1C23D573F3F23CC5245B4D1C289F517720F444A3282BDD4D5E49B98926C13B0C45CA13BE11E55A5B6F104435196EF8E25A3A955C5C15A0A350A276912C143F57C819F45557A04C5A576E2266E0898E8D64BA3B7E539B642C7C13E624BC8AA299F8FC1D72C7E9DD4C5CE50DFFB762A80A3D7EF8BBEE12CDDCA3F9900A948986F64A719D5444E5D595B86F2524B0292282F6EFC2D3DB2E275FDC4D11654C878D1D74CA972B7CF6C57B2A542BE5A8F2576105C95C1376F5EBCA7A7068A60E90AA8C4B19219EC3A518E8CD809F06096ABFF526F31E86DD4127FD4CFBDAF1229CB590CF9D76ECAFB2E6B3CD43995F6EF11D697DAF0383 +20200325172855 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF90ED930B3 +20200325202118 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF91061F97B +20200326023237 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF9139C9FC7 +20200326024940 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF913B79CEB +20200328134127 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF92E9C709F +20200328212714 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF932A9BEAF +20200329023213 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF935A4196F +20200329154240 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF93D2BEF37 +20200329201144 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF93F51B18F +20200330113432 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF944EA6E43 +20200331175854 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF94C88CF9F +20200401041044 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF94F14974F +20200401113456 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF950E7AC23 +20200402184624 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF958E471B3 +20200402210643 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF9598F1B73 +20200403191828 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF95C0DDE53 +20200403200234 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF95C32F9F7 +20200404072948 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF95EFCC91F +20200404154328 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF9626ACABB +20200404173401 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF963319AF3 +20200404190652 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF963D80CBF +20200407114745 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF96F20367B +20200408113553 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF973EEF8A3 +20200409193550 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF97A04D14B +20200410193553 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF97C78121F +20200411093549 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF97F2C0DC7 +20200412155343 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF982A4594B +20200413220042 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF9880132D3 +20200414091654 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF98A23F9AB +20200415173037 2 6 100 8191 2 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF98D4F179B +20200415204739 2 6 100 8191 5 C9BECFEF229169BA6895957B61D338147FD9E67666267E2963D7A5587F57261CE8805A323015A9DA97865C6720A855FB346A80C284F9E8B8661DE02027ED9D77E29C25FD08E9BA260CF0D99BF2B69B0F054D642F8E29756D282B4523CF8CC058AA3A274F5D0766A30E269DC7AF3902DC139AC98994961A9186B5538B0F741A774918140CFC62D6BED7CB6E9333682F17683EF6EB53C2912F125105BDFAADB8046BD4FDFA60C4CE0CD0800D4247FFF67A72917E18D86BDFD6A4FBF3301E3290F5F5FF138F8EB4AD0C85AD4DEE6D590B44352B8B42C3A207C677CFCA215DE5391C9BFE5667698AB65D6955CA1FE8CE57D8EFC83FF5547E095FCC476FF3BAF6DD5B6D87F1C836CB712B54B115C0D7640F8F72CBDCE86DBCE6D2C04B7306B16E010A6CBE0BA95ABF269071BB1F5F433BC74D0C19889480A6B5C1683904837C36C7BCF69BE7CB96E0CAA07396224D694FB02F922B33D14C384923F946D104475F49D18A77AE5FA44ADA7C6E16D3B3085821C0B6814DCB565FDC44ED1942C9E25224ED96240D1FEF3817B6161BAD9F16B8C80953882C2FB2722515B10ABEBE969D2318AE9EB81CE91352329591D2874E6121205E072A3D5749190FA847D79B72BD3452DE0B5169601DDB6264AE70A1DC46B3637567787A11AA180B20623440C455722F8131FF09B47DC47814A4925B615A635D6DA05106825E764746CE76EDEE66F8782B9F688AA003B003857B5A659EAAE999171A9353DE0633614093E0A81E1346ABCDCB3CE1A40E8E086A2A2FB9B87394E0F6A0319F42C7B5B8BB9CFB0EF9FDFF6034A397E32E76B6F8C01F3DD2BE81FC938AFE7A1E1D763B4715B2D7CFB4DA9C0B4D013DE532F7D35E177542616DCC3F06736A25F60D0D486D5E4A3797C643977321C9908881170A23D22ADC8768E983DDB79594311DAF4D2CC28AC73E579F36297B0B007B86CB20F185C3A97E772B8FEF731D59A57C9A30D80C5E8B5F62715EA82BE29C5ADBB7A50B2A3E1FE26A7E77A9B53AB69E4A3D4552494F4F0A39459FE8AD9AA7AFEF7CB2560F759E735DED296AE22EDFDF5336671030749F5CE10E6C212BFDC97DA25C5BC80CD62BD490752CD84FA6B8A35BFC752A1CF07C9247C47A0D50D1AC3A713DDF9214E35FF74BF84799732CA0F7032F2ABA00E896CB731A26D09A44E870E9E46D452428F03F6C54CAD2A90A7D95F06F042A929DB5D1D3BEE989F292C1409E780F30B5C00D5965E35EC5957BCF172C26A93E337B1702FAD07940E5EDF2155F1F1CB33E363935829A64665AB6B6D7B6147673E02CF53BA128114C1396785C550D9FC3E38A2E15964CF7BE477766A7AA3310BC6729910C049FAF4FD5895AB3199830EAF34A67FD727FCE77F0FD546A70AE65011839B3A617EC1A2BB2F341A75EC989227E3DEB3DC4DC9911B0BC1F43425401B9D3355CF98DF24F47 +20200416120747 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317AE516267 +20200416164443 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317B052A5C3 +20200416182037 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317B0FD1FE3 +20200416203456 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317B1F40773 +20200419115426 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317C703EE2B +20200420182727 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317CFC2F4E7 +20200421163640 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317D5F6A563 +20200421165237 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317D6070547 +20200421230237 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317D880CCA3 +20200422193836 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317DE385AC7 +20200423050749 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317E3208663 +20200424124535 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317EE2914A3 +20200425200633 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317FD928D1B +20200425223722 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729317FEB7212B +20200426095445 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B72931804287AC7 +20200426121541 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B7293180542CD23 +20200426142125 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318063CF9E3 +20200426144436 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B7293180663AFAF +20200426154241 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B72931806D328F3 +20200426180855 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B72931808041373 +20200426210432 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318097002B3 +20200427001200 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B7293180AEDF073 +20200427034737 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B7293180CA6F67F +20200427122056 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318110CCF9F +20200427185846 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318146CBE53 +20200428235601 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318232A7227 +20200429061301 2 6 100 8191 2 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B729318265D253B +20200429125635 2 6 100 8191 5 FDD2FF1B0B2402FB6FD5FBC2AF7553A3418C2535DFBF5CDB078CEA3D7C44A4863229766D19871460787A24C249D14845D5332DC7B153C10DF45AEBDC462929E786B8384FF62EC1CB99A79928B0EDB9845107488A06141112F534054013B3AA4DC1B2FE160ABA2E8670A0FB7B835D57BF99D5E7474161517D4149677B3BA24D68831195F8EF4145CB44B0FBDB37BF1B36A0B6F517F145FCC7C169C41A0E3A8A313E455A377E5D82B82608EEB14A5E7C5F4E9AA8E5315D1C600077B5F2F50022E2AEEE142E09DD25363862BAE1AF0D37B00C0D824B25C2B579524577AABB5C82452BE70C9AE8D65E935E087A70892E00544BAD691FE677C577917CC495D470E5301A9F75F019268DD8A9ED8F89EE35F6DABECE4507627691A666E86B98578FD03A7AC198728F7BA4348ECF3A61BAA4AD99DA46F97EA9773F1B9ACAA71EE30435E7A82F081C9D0B16495E96645626637CB97BDB4E7932763F826029B6FFE6C0537315BF01C1671029397DA737A5CD1F13F3ECB769D8265BE0148B22DD5FECCA1E7763E837C3FAEC235F1CC2910F51BD05A647C39623EEC1514FA6C64C84804E23D63D0BED6A88A1C6D382EBCF04FD8574C92D662BAFB239EE7984E6D252AD85D3B0D94D040B6FCB4B5120A2E43AF54C11C59B3D4BB777B3E49714FBBF0169ABBDC0CF285F6C37E668966CB8BBA5083A5EBCD706CBED60455ED554794B03D5136AC555A272FD180D2B99B60AEC25096F33C70CF7B6E4ED89D781954B7D52DFB8A0CCD2A237D8693EF8B3236540678ACEEDAC2A621B88B1A478BAB068ADB7CC8A037F8723B89E0FDFFAAD73F5D77007FCF04DB358393A7DC6DF42DCB4EBB853B77D27FFD7A616B9354ED0707431776FE294BAE152689DEE19B18902356B801EC7A760C2075998D6C6AF8CA1D59CB1D294CBA7490D5F54E0997202F4F4298AD554E28FF788093407E005600A35BA4B172B1D141D956965ED477C2EE1F808B45DE3517D66E969F17D8F5C0F4CA8F64F3912E9E8E8E11D3939EEC5CD6E6FB8D1090E65531BD570108A73A0268D370C51D41FF38B96475BE85EFF412B573F998D03C4741F3095ABEB13AC750147D76DF8375DFE62DC289496C8B8C9D692D5034AD7D514EBC3CD05B0ED0B7261823CEF3DFEA3D4324F1E1F5AD0172220225EECF3FC23786D75F1143117275CCDC3F5182C6CD7D194F9F943E0E0D4C64353442E9C0D06584A7D641DA03641E474E48CA631BEDB233526F7B889425561B48D5645BBB2E53CFC32A40771B6A12D0A2A6E0034666F2DBE47E30CE1FD5949963D2A779B02B886E186E20A31ECC948E4BF19E3D206760613F9577D9BC1FC02D68D2AB09C1EA756175FDD76A372E87FF4A9E79AAEE681D79697ED27803F8E6A9E41B92A0F6F239CA72F88F8414F758E98A48A1C0BC30FCF49EC2615F831C0E99E1B72931829B70597 -- cgit v1.2.3 From 8da801f585dd9c534c0cbe487a3b1648036bf2fb Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 5 Jun 2020 13:20:10 +1000 Subject: Test fallthrough in OSSH_CHECK_CFLAG_COMPILE. clang 10's -Wimplicit-fallthrough does not understand /* FALLTHROUGH */ comments and we don't use the __attribute__((fallthrough)) that it's looking for. This has the effect of turning off -Wimplicit-fallthrough where it does not currently help (particularly with -Werror). ok djm@ --- aclocal.m4 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/aclocal.m4 b/aclocal.m4 index 25ecc49a2..0193c3dcc 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -21,6 +21,16 @@ int main(int argc, char **argv) { double m = l / 0.5; long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; printf("%d %d %d %f %f %lld %lld\n", i, j, k, l, m, n, o); + /* + * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does + * not understand comments and we don't use the "fallthrough" attribute + * that it's looking for. + */ + switch(i){ + case 0: j += i; + /* FALLTHROUGH */ + default: j += k; + } exit(0); } ]])], -- cgit v1.2.3 From 56548e4efcc3e3e8093c2eba30c75b23e561b172 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 3 Jun 2020 08:23:18 +0000 Subject: upstream: Import regenerated moduli file. OpenBSD-Commit-ID: 52ff0e3205036147b2499889353ac082e505ea54 --- .skipped-commit-ids | 1 + 1 file changed, 1 insertion(+) diff --git a/.skipped-commit-ids b/.skipped-commit-ids index 611d1093d..6aa00f1e3 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids @@ -19,6 +19,7 @@ d9b910e412d139141b072a905e66714870c38ac0 Makefile.inc 7b7b619c1452a459310b0cf4391c5757c6bdbc0f moduli update 5010ff08f7ad92082e87dde098b20f5c24921a8f moduli regen script update 3bcae7a754db3fc5ad3cab63dd46774edb35b8ae moduli regen script update +52ff0e3205036147b2499889353ac082e505ea54 moduli update Old upstream tree: -- cgit v1.2.3 From 2f648cf222882719040906722b3593b01df4ad1a Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 5 Jun 2020 03:15:26 +0000 Subject: upstream: Correct historical comment: provos@ modified OpenSSH to work with SSLeay (very quickly replaced by OpenSSL) not SSL in general. ok deraadt, historical context markus@ OpenBSD-Commit-ID: 7209e07a2984b50411ed8ca5a4932da5030d2b90 --- ssh.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ssh.c b/ssh.c index 9d61e2e6d..dfae0a73d 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.528 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.529 2020/06/05 03:15:26 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -16,7 +16,7 @@ * Copyright (c) 1999 Niels Provos. All rights reserved. * Copyright (c) 2000, 2001, 2002, 2003 Markus Friedl. All rights reserved. * - * Modified to work with SSL by Niels Provos + * Modified to work with SSLeay by Niels Provos * in Canada (German citizen). * * Redistribution and use in source and binary forms, with or without -- cgit v1.2.3 From 670428895739d1f79894bdb2457891c3afa60a59 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 5 Jun 2020 03:24:16 +0000 Subject: upstream: wrap long line OpenBSD-Commit-ID: ed405a12bd27bdc9c52e169bc5ff3529b4ebbbb2 --- sshconnect2.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sshconnect2.c b/sshconnect2.c index 08b4f8550..821af2150 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.322 2020/05/13 09:52:41 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.323 2020/06/05 03:24:16 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -1156,7 +1156,8 @@ key_sig_algorithm(struct ssh *ssh, const struct sshkey *key) while ((cp = strsep(&allowed, ",")) != NULL) { if (sshkey_type_from_name(cp) != key->type) continue; - tmp = match_list(sshkey_sigalg_by_name(cp), ssh->kex->server_sig_algs, NULL); + tmp = match_list(sshkey_sigalg_by_name(cp), + ssh->kex->server_sig_algs, NULL); if (tmp != NULL) alg = xstrdup(cp); free(tmp); -- cgit v1.2.3 From 69796297c812640415c6cea074ea61afc899cbaa Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 5 Jun 2020 03:24:36 +0000 Subject: upstream: make sshbuf_dump() args const OpenBSD-Commit-ID: b4a5accae750875d665b862504169769bcf663bd --- sshbuf-misc.c | 4 ++-- sshbuf.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sshbuf-misc.c b/sshbuf-misc.c index 9b5aa208c..86e5fa34f 100644 --- a/sshbuf-misc.c +++ b/sshbuf-misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf-misc.c,v 1.14 2020/02/26 13:40:09 jsg Exp $ */ +/* $OpenBSD: sshbuf-misc.c,v 1.15 2020/06/05 03:24:36 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -63,7 +63,7 @@ sshbuf_dump_data(const void *s, size_t len, FILE *f) } void -sshbuf_dump(struct sshbuf *buf, FILE *f) +sshbuf_dump(const struct sshbuf *buf, FILE *f) { fprintf(f, "buffer %p len = %zu\n", buf, sshbuf_len(buf)); sshbuf_dump_data(sshbuf_ptr(buf), sshbuf_len(buf), f); diff --git a/sshbuf.h b/sshbuf.h index 94392c8be..ec7514eb3 100644 --- a/sshbuf.h +++ b/sshbuf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf.h,v 1.21 2020/04/26 09:38:14 dtucker Exp $ */ +/* $OpenBSD: sshbuf.h,v 1.22 2020/06/05 03:24:36 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -242,7 +242,7 @@ int sshbuf_put_eckey(struct sshbuf *buf, const EC_KEY *v); #endif /* WITH_OPENSSL */ /* Dump the contents of the buffer in a human-readable format */ -void sshbuf_dump(struct sshbuf *buf, FILE *f); +void sshbuf_dump(const struct sshbuf *buf, FILE *f); /* Dump specified memory in a human-readable format */ void sshbuf_dump_data(const void *s, size_t len, FILE *f); -- cgit v1.2.3 From ea547eb0329c2f8da77a4ac05f6c330bd49bdaab Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 5 Jun 2020 03:25:35 +0000 Subject: upstream: make sshbuf_putb(b, NULL) a no-op OpenBSD-Commit-ID: 976fdc99b500e347023d430df372f31c1dd128f7 --- sshbuf-getput-basic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sshbuf-getput-basic.c b/sshbuf-getput-basic.c index da834d008..9803fb5ed 100644 --- a/sshbuf-getput-basic.c +++ b/sshbuf-getput-basic.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf-getput-basic.c,v 1.10 2019/12/13 19:09:37 djm Exp $ */ +/* $OpenBSD: sshbuf-getput-basic.c,v 1.11 2020/06/05 03:25:35 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -338,6 +338,8 @@ sshbuf_put(struct sshbuf *buf, const void *v, size_t len) int sshbuf_putb(struct sshbuf *buf, const struct sshbuf *v) { + if (v == NULL) + return 0; return sshbuf_put(buf, sshbuf_ptr(v), sshbuf_len(v)); } -- cgit v1.2.3 From 3de02be39e5c0c2208d9682a3844991651620fcc Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 25 May 2020 11:10:44 +0200 Subject: Add support for AUDIT_ARCH_RISCV64 --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index 460383757..0ea85bed0 100644 --- a/configure.ac +++ b/configure.ac @@ -912,6 +912,9 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) ;; esac ;; + riscv64-*) + seccomp_audit_arch=AUDIT_ARCH_RISCV64 + ;; esac if test "x$seccomp_audit_arch" != "x" ; then AC_MSG_RESULT(["$seccomp_audit_arch"]) -- cgit v1.2.3 From 3a7f654d5bcb20df24a134b6581b0d235da4564a Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 5 Jun 2020 06:18:07 +0000 Subject: upstream: unbreak "sshd -ddd" - close of config passing fd happened too early. ok markus@ OpenBSD-Commit-ID: 49346e945c6447aca3e904e65fc400128d2f8ed0 --- sshd.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sshd.c b/sshd.c index 0f8ddebe5..71f743a0d 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.555 2020/05/26 01:09:05 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.556 2020/06/05 06:18:07 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1310,7 +1310,6 @@ server_accept_loop(int *sock_in, int *sock_out, int *newsock, int *config_s) startup_pipe = -1; pid = getpid(); if (rexec_flag) { - close(config_s[1]); send_rexec_state(config_s[0], cfg); close(config_s[0]); } -- cgit v1.2.3 From 7fafaeb5da365f4a408fec355dac04a774f27193 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 12 Jun 2020 05:26:37 +0000 Subject: upstream: correct RFC number; from HARUYAMA Seigo via GH PR191 OpenBSD-Commit-ID: 8d03b6c96ca98bfbc23d3754c3c33e1fe0852e10 --- PROTOCOL.sshsig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PROTOCOL.sshsig b/PROTOCOL.sshsig index 720e1f18a..db18458fa 100644 --- a/PROTOCOL.sshsig +++ b/PROTOCOL.sshsig @@ -71,7 +71,7 @@ encoding rules for the chosen key type. For RSA signatures, the signature algorithm must be "rsa-sha2-512" or "rsa-sha2-256" (i.e. not the legacy RSA-SHA1 "ssh-rsa"). -This blob is encoded as a string using the RFC4243 encoding +This blob is encoded as a string using the RFC4253 encoding rules and base64 encoded to form the middle part of the armored signature. -- cgit v1.2.3 From c514f3c0522855b4d548286eaa113e209051a6d2 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 18 Jun 2020 23:33:38 +0000 Subject: upstream: avoid spurious "Unable to load host key" message when sshd can load a private key but no public counterpart; with & ok markus@ OpenBSD-Commit-ID: 0713cbdf9aa1ff8ac7b1f78b09ac911af510f81b --- authfile.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/authfile.c b/authfile.c index 35ccf576c..946f50ca8 100644 --- a/authfile.c +++ b/authfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: authfile.c,v 1.140 2020/04/17 07:15:11 djm Exp $ */ +/* $OpenBSD: authfile.c,v 1.141 2020/06/18 23:33:38 djm Exp $ */ /* * Copyright (c) 2000, 2013 Markus Friedl. All rights reserved. * @@ -263,7 +263,7 @@ int sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp) { char *pubfile = NULL; - int r; + int r, oerrno; if (keyp != NULL) *keyp = NULL; @@ -283,8 +283,14 @@ sshkey_load_public(const char *filename, struct sshkey **keyp, char **commentp) if ((r = sshkey_load_pubkey_from_private(filename, keyp)) == 0) goto out; + /* Pretend we couldn't find the key */ + r = SSH_ERR_SYSTEM_ERROR; + errno = ENOENT; + out: + oerrno = errno; free(pubfile); + errno = oerrno; return r; } -- cgit v1.2.3 From 7775819c6de3e9547ac57b87c7dd2bfd28cefcc5 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 18 Jun 2020 23:34:19 +0000 Subject: upstream: check public host key matches private; ok markus@ (as part of previous diff) OpenBSD-Commit-ID: 65a4f66436028748b59fb88b264cb8c94ce2ba63 --- sshd.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/sshd.c b/sshd.c index 71f743a0d..44cc3ac92 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.556 2020/06/05 06:18:07 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.557 2020/06/18 23:34:19 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1849,10 +1849,19 @@ main(int ac, char **av) &pubkey, NULL)) != 0 && r != SSH_ERR_SYSTEM_ERROR) do_log2(ll, "Unable to load host key \"%s\": %s", options.host_key_files[i], ssh_err(r)); - if (pubkey == NULL && key != NULL) + if (pubkey != NULL && key != NULL) { + if (!sshkey_equal(pubkey, key)) { + error("Public key for %s does not match " + "private key", options.host_key_files[i]); + sshkey_free(pubkey); + pubkey = NULL; + } + } + if (pubkey == NULL && key != NULL) { if ((r = sshkey_from_private(key, &pubkey)) != 0) fatal("Could not demote key: \"%s\": %s", options.host_key_files[i], ssh_err(r)); + } sensitive_data.host_keys[i] = key; sensitive_data.host_pubkeys[i] = pubkey; -- cgit v1.2.3 From e95c0a0e964827722d29b4bc00d5c0ff4afe0ed2 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 19 Jun 2020 03:48:49 +0000 Subject: upstream: basic unit test for FIDO kep parsing OpenBSD-Regress-ID: 8089b88393dd916d7c95422b442a6fd4cfe00c82 --- regress/unittests/sshkey/mktestdata.sh | 53 ++++++++- regress/unittests/sshkey/test_file.c | 131 ++++++++++++++++++++- regress/unittests/sshkey/testdata/ecdsa_sk1 | 13 ++ .../unittests/sshkey/testdata/ecdsa_sk1-cert.fp | 1 + .../unittests/sshkey/testdata/ecdsa_sk1-cert.pub | 1 + regress/unittests/sshkey/testdata/ecdsa_sk1.fp | 1 + regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb | 1 + regress/unittests/sshkey/testdata/ecdsa_sk1.pub | 1 + regress/unittests/sshkey/testdata/ecdsa_sk1_pw | 14 +++ regress/unittests/sshkey/testdata/ecdsa_sk2 | 13 ++ regress/unittests/sshkey/testdata/ecdsa_sk2.fp | 1 + regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb | 1 + regress/unittests/sshkey/testdata/ecdsa_sk2.pub | 1 + regress/unittests/sshkey/testdata/ed25519_sk1 | 8 ++ .../unittests/sshkey/testdata/ed25519_sk1-cert.fp | 1 + .../unittests/sshkey/testdata/ed25519_sk1-cert.pub | 1 + regress/unittests/sshkey/testdata/ed25519_sk1.fp | 1 + .../unittests/sshkey/testdata/ed25519_sk1.fp.bb | 1 + regress/unittests/sshkey/testdata/ed25519_sk1.pub | 1 + regress/unittests/sshkey/testdata/ed25519_sk1_pw | 9 ++ regress/unittests/sshkey/testdata/ed25519_sk2 | 8 ++ regress/unittests/sshkey/testdata/ed25519_sk2.fp | 1 + .../unittests/sshkey/testdata/ed25519_sk2.fp.bb | 1 + regress/unittests/sshkey/testdata/ed25519_sk2.pub | 1 + 24 files changed, 258 insertions(+), 7 deletions(-) create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1 create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1-cert.fp create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1-cert.pub create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1.fp create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1.pub create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk1_pw create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk2 create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk2.fp create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb create mode 100644 regress/unittests/sshkey/testdata/ecdsa_sk2.pub create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1 create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1-cert.fp create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1-cert.pub create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1.fp create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1.fp.bb create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1.pub create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk1_pw create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk2 create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk2.fp create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk2.fp.bb create mode 100644 regress/unittests/sshkey/testdata/ed25519_sk2.pub diff --git a/regress/unittests/sshkey/mktestdata.sh b/regress/unittests/sshkey/mktestdata.sh index 8efe6dd03..fcd78e990 100755 --- a/regress/unittests/sshkey/mktestdata.sh +++ b/regress/unittests/sshkey/mktestdata.sh @@ -1,5 +1,5 @@ #!/bin/sh -# $OpenBSD: mktestdata.sh,v 1.10 2020/05/01 04:03:14 djm Exp $ +# $OpenBSD: mktestdata.sh,v 1.11 2020/06/19 03:48:49 djm Exp $ PW=mekmitasdigoat @@ -70,6 +70,15 @@ set -ex cd testdata +if [ -f ../../../misc/sk-dummy/sk-dummy.so ] ; then + SK_DUMMY=../../../misc/sk-dummy/sk-dummy.so +elif [ -f ../../../misc/sk-dummy/obj/sk-dummy.so ] ; then + SK_DUMMY=../../../misc/sk-dummy/obj/sk-dummy.so +else + echo "Can't find sk-dummy.so" 1>&2 + exit 1 +fi + rm -f rsa_1 dsa_1 ecdsa_1 ed25519_1 rm -f rsa_2 dsa_2 ecdsa_2 ed25519_2 rm -f rsa_n dsa_n ecdsa_n # new-format keys @@ -81,11 +90,20 @@ ssh-keygen -t rsa -b 1024 -C "RSA test key #1" -N "" -f rsa_1 -m PEM ssh-keygen -t dsa -b 1024 -C "DSA test key #1" -N "" -f dsa_1 -m PEM ssh-keygen -t ecdsa -b 256 -C "ECDSA test key #1" -N "" -f ecdsa_1 -m PEM ssh-keygen -t ed25519 -C "ED25519 test key #1" -N "" -f ed25519_1 +ssh-keygen -w "$SK_DUMMY" -t ecdsa-sk -C "ECDSA-SK test key #1" \ + -N "" -f ecdsa_sk1 +ssh-keygen -w "$SK_DUMMY" -t ed25519-sk -C "ED25519-SK test key #1" \ + -N "" -f ed25519_sk1 + ssh-keygen -t rsa -b 2048 -C "RSA test key #2" -N "" -f rsa_2 -m PEM ssh-keygen -t dsa -b 1024 -C "DSA test key #2" -N "" -f dsa_2 -m PEM ssh-keygen -t ecdsa -b 521 -C "ECDSA test key #2" -N "" -f ecdsa_2 -m PEM -ssh-keygen -t ed25519 -C "ED25519 test key #1" -N "" -f ed25519_2 +ssh-keygen -t ed25519 -C "ED25519 test key #2" -N "" -f ed25519_2 +ssh-keygen -w "$SK_DUMMY" -t ecdsa-sk -C "ECDSA-SK test key #2" \ + -N "" -f ecdsa_sk2 +ssh-keygen -w "$SK_DUMMY" -t ed25519-sk -C "ED25519-SK test key #2" \ + -N "" -f ed25519_sk2 cp rsa_1 rsa_n cp dsa_1 dsa_n @@ -99,6 +117,8 @@ cp rsa_1 rsa_1_pw cp dsa_1 dsa_1_pw cp ecdsa_1 ecdsa_1_pw cp ed25519_1 ed25519_1_pw +cp ecdsa_sk1 ecdsa_sk1_pw +cp ed25519_sk1 ed25519_sk1_pw cp rsa_1 rsa_n_pw cp dsa_1 dsa_n_pw cp ecdsa_1 ecdsa_n_pw @@ -107,6 +127,8 @@ ssh-keygen -pf rsa_1_pw -m PEM -N "$PW" ssh-keygen -pf dsa_1_pw -m PEM -N "$PW" ssh-keygen -pf ecdsa_1_pw -m PEM -N "$PW" ssh-keygen -pf ed25519_1_pw -N "$PW" +ssh-keygen -pf ecdsa_sk1_pw -m PEM -N "$PW" +ssh-keygen -pf ed25519_sk1_pw -N "$PW" ssh-keygen -pf rsa_n_pw -N "$PW" ssh-keygen -pf dsa_n_pw -N "$PW" ssh-keygen -pf ecdsa_n_pw -N "$PW" @@ -117,7 +139,7 @@ dsa_params dsa_1 dsa_1.param dsa_params dsa_1 dsa_1.param ecdsa_params ecdsa_1 ecdsa_1.param ecdsa_params ecdsa_2 ecdsa_2.param -# XXX ed25519 params +# XXX ed25519, *sk params ssh-keygen -s rsa_2 -I hugo -n user1,user2 \ -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \ @@ -131,6 +153,13 @@ ssh-keygen -s rsa_2 -I hugo -n user1,user2 \ ssh-keygen -s rsa_2 -I hugo -n user1,user2 \ -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \ -V 19990101:20110101 -z 4 ed25519_1.pub +ssh-keygen -s rsa_2 -I hugo -n user1,user2 \ + -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \ + -V 19990101:20110101 -z 4 ecdsa_sk1.pub +ssh-keygen -s rsa_2 -I hugo -n user1,user2 \ + -Oforce-command=/bin/ls -Ono-port-forwarding -Osource-address=10.0.0.0/8 \ + -V 19990101:20110101 -z 4 ed25519_sk1.pub + # Make a few RSA variant signature too. cp rsa_1 rsa_1_sha1 @@ -152,30 +181,42 @@ ssh-keygen -s ecdsa_1 -I julius -n host1,host2 -h \ -V 19990101:20110101 -z 7 ecdsa_1.pub ssh-keygen -s ed25519_1 -I julius -n host1,host2 -h \ -V 19990101:20110101 -z 8 ed25519_1.pub +ssh-keygen -s ecdsa_1 -I julius -n host1,host2 -h \ + -V 19990101:20110101 -z 7 ecdsa_sk1.pub +ssh-keygen -s ed25519_1 -I julius -n host1,host2 -h \ + -V 19990101:20110101 -z 8 ed25519_sk1.pub ssh-keygen -lf rsa_1 | awk '{print $2}' > rsa_1.fp ssh-keygen -lf dsa_1 | awk '{print $2}' > dsa_1.fp ssh-keygen -lf ecdsa_1 | awk '{print $2}' > ecdsa_1.fp ssh-keygen -lf ed25519_1 | awk '{print $2}' > ed25519_1.fp +ssh-keygen -lf ecdsa_sk1 | awk '{print $2}' > ecdsa_sk1.fp +ssh-keygen -lf ed25519_sk1 | awk '{print $2}' > ed25519_sk1.fp ssh-keygen -lf rsa_2 | awk '{print $2}' > rsa_2.fp ssh-keygen -lf dsa_2 | awk '{print $2}' > dsa_2.fp ssh-keygen -lf ecdsa_2 | awk '{print $2}' > ecdsa_2.fp ssh-keygen -lf ed25519_2 | awk '{print $2}' > ed25519_2.fp +ssh-keygen -lf ecdsa_sk2 | awk '{print $2}' > ecdsa_sk2.fp +ssh-keygen -lf ed25519_sk2 | awk '{print $2}' > ed25519_sk2.fp +ssh-keygen -lf rsa_1-cert.pub | awk '{print $2}' > rsa_1-cert.fp ssh-keygen -lf dsa_1-cert.pub | awk '{print $2}' > dsa_1-cert.fp ssh-keygen -lf ecdsa_1-cert.pub | awk '{print $2}' > ecdsa_1-cert.fp ssh-keygen -lf ed25519_1-cert.pub | awk '{print $2}' > ed25519_1-cert.fp -ssh-keygen -lf rsa_1-cert.pub | awk '{print $2}' > rsa_1-cert.fp +ssh-keygen -lf ecdsa_sk1-cert.pub | awk '{print $2}' > ecdsa_sk1-cert.fp +ssh-keygen -lf ed25519_sk1-cert.pub | awk '{print $2}' > ed25519_sk1-cert.fp ssh-keygen -Bf rsa_1 | awk '{print $2}' > rsa_1.fp.bb ssh-keygen -Bf dsa_1 | awk '{print $2}' > dsa_1.fp.bb ssh-keygen -Bf ecdsa_1 | awk '{print $2}' > ecdsa_1.fp.bb ssh-keygen -Bf ed25519_1 | awk '{print $2}' > ed25519_1.fp.bb +ssh-keygen -Bf ecdsa_sk1 | awk '{print $2}' > ecdsa_sk1.fp.bb +ssh-keygen -Bf ed25519_sk1 | awk '{print $2}' > ed25519_sk1.fp.bb ssh-keygen -Bf rsa_2 | awk '{print $2}' > rsa_2.fp.bb ssh-keygen -Bf dsa_2 | awk '{print $2}' > dsa_2.fp.bb ssh-keygen -Bf ecdsa_2 | awk '{print $2}' > ecdsa_2.fp.bb ssh-keygen -Bf ed25519_2 | awk '{print $2}' > ed25519_2.fp.bb - -# XXX Extend ssh-keygen to do detached signatures (better to test/fuzz against) +ssh-keygen -Bf ecdsa_sk2 | awk '{print $2}' > ecdsa_sk2.fp.bb +ssh-keygen -Bf ed25519_sk2 | awk '{print $2}' > ed25519_sk2.fp.bb echo "$PW" > pw diff --git a/regress/unittests/sshkey/test_file.c b/regress/unittests/sshkey/test_file.c index 55627bc12..6afe3ba2b 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.8 2018/09/13 09:03:20 djm Exp $ */ +/* $OpenBSD: test_file.c,v 1.9 2020/06/19 03:48:49 djm Exp $ */ /* * Regress test for sshkey.h key management API * @@ -422,6 +422,135 @@ sshkey_file_tests(void) sshkey_free(k1); + TEST_START("parse ECDSA-SK from private"); + buf = load_file("ecdsa_sk1"); + ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); + sshbuf_free(buf); + ASSERT_PTR_NE(k1, NULL); + ASSERT_INT_EQ(k1->type, KEY_ECDSA_SK); + TEST_DONE(); + + TEST_START("parse ECDSA-SK from private w/ passphrase"); + buf = load_file("ecdsa_sk1_pw"); + ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, + (const char *)sshbuf_ptr(pw), &k2, NULL), 0); + sshbuf_free(buf); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 1); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("load ECDSA-SK from public"); + ASSERT_INT_EQ(sshkey_load_public(test_data_file("ecdsa_sk1.pub"), &k2, + NULL), 0); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 1); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("load ECDSA-SK cert"); + ASSERT_INT_EQ(sshkey_load_cert(test_data_file("ecdsa_sk1"), &k2), 0); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(k2->type, KEY_ECDSA_SK_CERT); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 0); + ASSERT_INT_EQ(sshkey_equal_public(k1, k2), 1); + TEST_DONE(); + + TEST_START("ECDSA-SK key hex fingerprint"); + buf = load_text_file("ecdsa_sk1.fp"); + cp = sshkey_fingerprint(k1, SSH_DIGEST_SHA256, SSH_FP_BASE64); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + TEST_DONE(); + + TEST_START("ECDSA-SK cert hex fingerprint"); + buf = load_text_file("ecdsa_sk1-cert.fp"); + cp = sshkey_fingerprint(k2, SSH_DIGEST_SHA256, SSH_FP_BASE64); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("ECDSA-SK key bubblebabble fingerprint"); + buf = load_text_file("ecdsa_sk1.fp.bb"); + cp = sshkey_fingerprint(k1, SSH_DIGEST_SHA1, SSH_FP_BUBBLEBABBLE); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + TEST_DONE(); + + sshkey_free(k1); + + TEST_START("parse Ed25519-SK from private"); + buf = load_file("ed25519_sk1"); + ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); + sshbuf_free(buf); + ASSERT_PTR_NE(k1, NULL); + ASSERT_INT_EQ(k1->type, KEY_ED25519_SK); + /* XXX check key contents */ + TEST_DONE(); + + TEST_START("parse Ed25519-SK from private w/ passphrase"); + buf = load_file("ed25519_sk1_pw"); + ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, + (const char *)sshbuf_ptr(pw), &k2, NULL), 0); + sshbuf_free(buf); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 1); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("load Ed25519-SK from public"); + ASSERT_INT_EQ(sshkey_load_public(test_data_file("ed25519_sk1.pub"), + &k2, NULL), 0); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 1); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("load Ed25519-SK cert"); + ASSERT_INT_EQ(sshkey_load_cert(test_data_file("ed25519_sk1"), &k2), 0); + ASSERT_PTR_NE(k2, NULL); + ASSERT_INT_EQ(k2->type, KEY_ED25519_SK_CERT); + ASSERT_INT_EQ(sshkey_equal(k1, k2), 0); + ASSERT_INT_EQ(sshkey_equal_public(k1, k2), 1); + TEST_DONE(); + + TEST_START("Ed25519-SK key hex fingerprint"); + buf = load_text_file("ed25519_sk1.fp"); + cp = sshkey_fingerprint(k1, SSH_DIGEST_SHA256, SSH_FP_BASE64); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + TEST_DONE(); + + TEST_START("Ed25519-SK cert hex fingerprint"); + buf = load_text_file("ed25519_sk1-cert.fp"); + cp = sshkey_fingerprint(k2, SSH_DIGEST_SHA256, SSH_FP_BASE64); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + sshkey_free(k2); + TEST_DONE(); + + TEST_START("Ed25519-SK key bubblebabble fingerprint"); + buf = load_text_file("ed25519_sk1.fp.bb"); + cp = sshkey_fingerprint(k1, SSH_DIGEST_SHA1, SSH_FP_BUBBLEBABBLE); + ASSERT_PTR_NE(cp, NULL); + ASSERT_STRING_EQ(cp, (const char *)sshbuf_ptr(buf)); + sshbuf_free(buf); + free(cp); + TEST_DONE(); + + sshkey_free(k1); + sshbuf_free(pw); } diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1 b/regress/unittests/sshkey/testdata/ecdsa_sk1 new file mode 100644 index 000000000..b51fb73d6 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1 @@ -0,0 +1,13 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 +RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQRnVT5Cji1D +Ge2+q2X0vATh6LYnODV+DJrshJorr5GnipW29RfuaDXs0WB6XBej9dOLazVRDjQrtV19Qg +O6cfkFAAAABHNzaDoAAAGQuPdnP7j3Zz8AAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv +cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEZ1U+Qo4tQxntvqtl9LwE4ei2Jzg1fgya7I +SaK6+Rp4qVtvUX7mg17NFgelwXo/XTi2s1UQ40K7VdfUIDunH5BQAAAARzc2g6AQAAAOMt +LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJRURmVFB4YzA0alN5Zk +Z5NlhoV1pTVlpzcnU5ZFlaSVpTOWhjeVFhcDlVT29Bb0dDQ3FHU000OQpBd0VIb1VRRFFn +QUVaMVUrUW80dFF4bnR2cXRsOUx3RTRlaTJKemcxZmd5YTdJU2FLNitScDRxVnR2VVg3bW +cxCjdORmdlbHdYby9YVGkyczFVUTQwSzdWZGZVSUR1bkg1QlE9PQotLS0tLUVORCBFQyBQ +UklWQVRFIEtFWS0tLS0tCgAAAAAAAAAURUNEU0EtU0sgdGVzdCBrZXkgIzEBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.fp b/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.fp new file mode 100644 index 000000000..d1921451d --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.fp @@ -0,0 +1 @@ +SHA256:Go7HO0CVPYG+BSDSk9ZUJBKGSrtBExp6obTa9iqzIUo diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.pub b/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.pub new file mode 100644 index 000000000..9586c61a7 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1-cert.pub @@ -0,0 +1 @@ +sk-ecdsa-sha2-nistp256-cert-v01@openssh.com AAAAK3NrLWVjZHNhLXNoYTItbmlzdHAyNTYtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgE012YoSBE9hEC2FRzblcSx784JNo2A4g611A7I75YMMAAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmiuvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOgAAAAAAAAAHAAAAAgAAAAZqdWxpdXMAAAASAAAABWhvc3QxAAAABWhvc3QyAAAAADaLg2AAAAAATR3h4AAAAAAAAAAAAAAAAAAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAEEEAlTtPiWUHubBeCys4Xp0QF91dYARpkyqtCnzg10HRS+ZDgkMrSUvPPG+Ge8iqtnB951MBxDq9FqDFIkhQBYXDAAAAGQAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAEkAAAAhALY+eXRJjVGnMk38Sm5S+H5CloNq757ypsoxt+WYoadtAAAAIA42/mAhUfLij1GY7wl+OFrI+icB/t4tGiEUZmhx6Foo ECDSA-SK test key #1 diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1.fp b/regress/unittests/sshkey/testdata/ecdsa_sk1.fp new file mode 100644 index 000000000..d1921451d --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1.fp @@ -0,0 +1 @@ +SHA256:Go7HO0CVPYG+BSDSk9ZUJBKGSrtBExp6obTa9iqzIUo diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb b/regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb new file mode 100644 index 000000000..cb9f4dd0d --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1.fp.bb @@ -0,0 +1 @@ +xovem-sacac-dageg-vovoc-symyz-bozal-cibiv-cyvat-vylyn-romib-hoxax diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1.pub b/regress/unittests/sshkey/testdata/ecdsa_sk1.pub new file mode 100644 index 000000000..c3b21e02b --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1.pub @@ -0,0 +1 @@ +sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmiuvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOg== ECDSA-SK test key #1 diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk1_pw b/regress/unittests/sshkey/testdata/ecdsa_sk1_pw new file mode 100644 index 000000000..4fa23a738 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk1_pw @@ -0,0 +1,14 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABB6vcJVx2 +cPc7yYRROup8VnAAAAEAAAAAEAAAB/AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3Bl +bnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBGdVPkKOLUMZ7b6rZfS8BOHotic4NX4MmuyEmi +uvkaeKlbb1F+5oNezRYHpcF6P104trNVEONCu1XX1CA7px+QUAAAAEc3NoOgAAAZBrvCxe +xFz0bvzXwaPhrUHBeNCoZy/wNKDx0kxlxUPuA+lgOvy5l3lT3yxxd0qj5PQB+NTcuz8AAE +1f7aSWQNZSifox3COsBGoHV9C8i+glcxiBKheAZD+EBnRGjG8kbcaLhuYDW/I39qNe8lHW +YSDjmvsT55Hy0IAtVRAXizDoXKNdFPTZisC67WyOSJ3ED7Fy4bfT4ApbvhoFTwjikZBEhy +LOad1sbJa4eT19TsskYfQdnJf8sjAmCMOZY4ZV0FiNW5XZOp8nIal1oyULPfzTAm6oaeFN +0ImCSU3U8h4wUQ8q/3XvBWtTKycZaoou0AwPoP0QN95Ywte7FHezNPb/n8KD7k0S6h9XAX +UcBeCe5NHyov/0ZzA2p737hzm3w+MXGOboTQMu8WFXeGh4m7QH2o8ZJdgBhM5JF17uii+Q +ppGoPWHf33MXwB3wxWmKZ0ua0f9AVLkQ2DfFszUoBJE/kcHRd4kj4Q4FWXeMBN0GoH8gdE +gRWIlxn2/FAOce/BFPzzdP87H0jwz7SdcuVO1L +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk2 b/regress/unittests/sshkey/testdata/ecdsa_sk2 new file mode 100644 index 000000000..19db5a3f5 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk2 @@ -0,0 +1,13 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 +RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQSTl+SR6rTg +lOZmcQkCtJ3Pd+lWinezo/gHk4oZdZcTQsmEYs766BlWGuB2Bz3qQRLa6cXsP+4K9kAjAJ +7zdoFUAAAABHNzaDoAAAGQ1qllJtapZSYAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv +cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEk5fkkeq04JTmZnEJArSdz3fpVop3s6P4B5 +OKGXWXE0LJhGLO+ugZVhrgdgc96kES2unF7D/uCvZAIwCe83aBVAAAAARzc2g6AQAAAOMt +LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJSkxwVkxnSTVvdkRlOW +VMWmZodCs5WWlMaitnam0rTXhHTXg5NndiRWw0Wm9Bb0dDQ3FHU000OQpBd0VIb1VRRFFn +QUVrNWZra2VxMDRKVG1abkVKQXJTZHozZnBWb3AzczZQNEI1T0tHWFdYRTBMSmhHTE8rdW +daClZocmdkZ2M5NmtFUzJ1bkY3RC91Q3ZaQUl3Q2U4M2FCVkE9PQotLS0tLUVORCBFQyBQ +UklWQVRFIEtFWS0tLS0tCgAAAAAAAAAURUNEU0EtU0sgdGVzdCBrZXkgIzIBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk2.fp b/regress/unittests/sshkey/testdata/ecdsa_sk2.fp new file mode 100644 index 000000000..1bc99ea0d --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk2.fp @@ -0,0 +1 @@ +SHA256:pz8VkgtRY3r50F4zSuzRlmq9c6vPTpJXLKKOgkyUcKE diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb b/regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb new file mode 100644 index 000000000..bfee7658a --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk2.fp.bb @@ -0,0 +1 @@ +xobel-gavur-gorym-pedop-rarob-bunek-gucer-lofeg-syhaf-fylur-zoxix diff --git a/regress/unittests/sshkey/testdata/ecdsa_sk2.pub b/regress/unittests/sshkey/testdata/ecdsa_sk2.pub new file mode 100644 index 000000000..2629d9509 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ecdsa_sk2.pub @@ -0,0 +1 @@ +sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBJOX5JHqtOCU5mZxCQK0nc936VaKd7Oj+AeTihl1lxNCyYRizvroGVYa4HYHPepBEtrpxew/7gr2QCMAnvN2gVQAAAAEc3NoOg== ECDSA-SK test key #2 diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1 b/regress/unittests/sshkey/testdata/ed25519_sk1 new file mode 100644 index 000000000..4196d9c6a --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1 @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 +gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACAhaP5OS1PPOt7uumAvXlDtte9EHbqIT1EZEJ2y +2v3XMwAAAARzc2g6AAAAuBocY6UaHGOlAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 +9tAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoBAAAAQJYq +lGHhFoA25/q8X/rdTqDAb7dhqs4ehhd/w8x99CwiIWj+TktTzzre7rpgL15Q7bXvRB26iE +9RGRCdstr91zMAAAAAAAAAFkVEMjU1MTktU0sgdGVzdCBrZXkgIzEBAgM= +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1-cert.fp b/regress/unittests/sshkey/testdata/ed25519_sk1-cert.fp new file mode 100644 index 000000000..a6bb1a99c --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1-cert.fp @@ -0,0 +1 @@ +SHA256:6WZVJ44bqhAWLVP4Ns0TDkoSQSsZo/h2K+mEvOaNFbw diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1-cert.pub b/regress/unittests/sshkey/testdata/ed25519_sk1-cert.pub new file mode 100644 index 000000000..3c72c268d --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1-cert.pub @@ -0,0 +1 @@ +sk-ssh-ed25519-cert-v01@openssh.com AAAAI3NrLXNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJr7CuMntQKvHoUshx374fJLFEkyxKsEOBA1H6hk5scoAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoAAAAAAAAACAAAAAIAAAAGanVsaXVzAAAAEgAAAAVob3N0MQAAAAVob3N0MgAAAAA2i4NgAAAAAE0d4eAAAAAAAAAAAAAAAAAAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIOo/0xneV3iM2qWEo5RUwvUYa2bjff292T5vvuXRomGQAAAAUwAAAAtzc2gtZWQyNTUxOQAAAECgsRGLDh1SI3m66MRp9D2iLP4wabQ0OrDgGidk7LsVn2XZHV5jBZN1RtNfe6PBMeVzfRtGUzOg18sO7H7uU+EC ED25519-SK test key #1 diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1.fp b/regress/unittests/sshkey/testdata/ed25519_sk1.fp new file mode 100644 index 000000000..a6bb1a99c --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1.fp @@ -0,0 +1 @@ +SHA256:6WZVJ44bqhAWLVP4Ns0TDkoSQSsZo/h2K+mEvOaNFbw diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1.fp.bb b/regress/unittests/sshkey/testdata/ed25519_sk1.fp.bb new file mode 100644 index 000000000..1bfe20a48 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1.fp.bb @@ -0,0 +1 @@ +xucac-vusip-tydoz-dudad-nerif-raran-tezun-cogyd-pamoh-bahef-ruxix diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1.pub b/regress/unittests/sshkey/testdata/ed25519_sk1.pub new file mode 100644 index 000000000..60fe00c39 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1.pub @@ -0,0 +1 @@ +sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDo= ED25519-SK test key #1 diff --git a/regress/unittests/sshkey/testdata/ed25519_sk1_pw b/regress/unittests/sshkey/testdata/ed25519_sk1_pw new file mode 100644 index 000000000..1c29ff07f --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk1_pw @@ -0,0 +1,9 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDr5R9Yf/ +ucEh0Ns6c34tcIAAAAEAAAAAEAAABKAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29t +AAAAICFo/k5LU8863u66YC9eUO2170QduohPURkQnbLa/dczAAAABHNzaDoAAADA2T6owx +OSgKz4DvLnS3UJ/renbuew5mbkIWB1/y8xd3y5Usm08iUCAlKxep9dVRQvmyoTrc/7rHOM +DkokNw+WgKambnlYT/9QfqViZ9iCBtbdmhLM6ksUCgQefvquRyXoJxlWstjXUll6Ru+ZbT +H//Ss8C1bYtAiXR68OQ+rhDrvQxA9P8J1sGIlkuV3h8YXddSpyBW2Sn0LTHHBXYZo86cXZ +G4Lnc8aGYm65eqdHgkfRmht3eS8DTdzEBfBNH5Ml +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ed25519_sk2 b/regress/unittests/sshkey/testdata/ed25519_sk2 new file mode 100644 index 000000000..b9b748966 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk2 @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 +gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACAV8fu1Sc31QLK2R/zGPdN3ve5xuFvDc7mEAWxb +aI+YcwAAAARzc2g6AAAAuJCMX5uQjF+bAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 +9tAAAAIBXx+7VJzfVAsrZH/MY903e97nG4W8NzuYQBbFtoj5hzAAAABHNzaDoBAAAAQObE +PajcKI1W30EKOhBb6u+Fgx464kf7EjnqDSg4l7gAFfH7tUnN9UCytkf8xj3Td73ucbhbw3 +O5hAFsW2iPmHMAAAAAAAAAFkVEMjU1MTktU0sgdGVzdCBrZXkgIzIBAgM= +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshkey/testdata/ed25519_sk2.fp b/regress/unittests/sshkey/testdata/ed25519_sk2.fp new file mode 100644 index 000000000..1c4369a00 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk2.fp @@ -0,0 +1 @@ +SHA256:b9BVPS5vuU4yu/FgweojLLg6zbfmBBoWLUgibdxxsoo diff --git a/regress/unittests/sshkey/testdata/ed25519_sk2.fp.bb b/regress/unittests/sshkey/testdata/ed25519_sk2.fp.bb new file mode 100644 index 000000000..f5fd9efd8 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk2.fp.bb @@ -0,0 +1 @@ +xemac-tizim-dihep-supar-zupib-cukak-pasis-febeg-dyguv-hutec-dyxox diff --git a/regress/unittests/sshkey/testdata/ed25519_sk2.pub b/regress/unittests/sshkey/testdata/ed25519_sk2.pub new file mode 100644 index 000000000..c7ed9f524 --- /dev/null +++ b/regress/unittests/sshkey/testdata/ed25519_sk2.pub @@ -0,0 +1 @@ +sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIBXx+7VJzfVAsrZH/MY903e97nG4W8NzuYQBbFtoj5hzAAAABHNzaDo= ED25519-SK test key #2 -- cgit v1.2.3 From 5edfa1690e9a75048971fd8775f7c16d153779db Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 19 Jun 2020 04:32:09 +0000 Subject: upstream: basic unit test for sshsig.[ch], including FIDO keys verification only so far OpenBSD-Regress-ID: fb1f946c8fc59206bc6a6666e577b5d5d7e45896 --- .gitignore | 1 + regress/unittests/sshsig/Makefile | 25 +++++ regress/unittests/sshsig/mktestdata.sh | 42 ++++++++ regress/unittests/sshsig/testdata/dsa | 12 +++ regress/unittests/sshsig/testdata/dsa.pub | 1 + regress/unittests/sshsig/testdata/dsa.sig | 13 +++ regress/unittests/sshsig/testdata/ecdsa | 5 + regress/unittests/sshsig/testdata/ecdsa.pub | 1 + regress/unittests/sshsig/testdata/ecdsa.sig | 7 ++ regress/unittests/sshsig/testdata/ecdsa_sk | 13 +++ regress/unittests/sshsig/testdata/ecdsa_sk.pub | 1 + regress/unittests/sshsig/testdata/ecdsa_sk.sig | 8 ++ regress/unittests/sshsig/testdata/ed25519 | 7 ++ regress/unittests/sshsig/testdata/ed25519.pub | 1 + regress/unittests/sshsig/testdata/ed25519.sig | 6 ++ regress/unittests/sshsig/testdata/ed25519_sk | 8 ++ regress/unittests/sshsig/testdata/ed25519_sk.pub | 1 + regress/unittests/sshsig/testdata/ed25519_sk.sig | 7 ++ regress/unittests/sshsig/testdata/namespace | 1 + regress/unittests/sshsig/testdata/rsa | 39 ++++++++ regress/unittests/sshsig/testdata/rsa.pub | 1 + regress/unittests/sshsig/testdata/rsa.sig | 19 ++++ regress/unittests/sshsig/testdata/signed-data | 1 + regress/unittests/sshsig/tests.c | 120 +++++++++++++++++++++++ 24 files changed, 340 insertions(+) create mode 100644 regress/unittests/sshsig/Makefile create mode 100755 regress/unittests/sshsig/mktestdata.sh create mode 100644 regress/unittests/sshsig/testdata/dsa create mode 100644 regress/unittests/sshsig/testdata/dsa.pub create mode 100644 regress/unittests/sshsig/testdata/dsa.sig create mode 100644 regress/unittests/sshsig/testdata/ecdsa create mode 100644 regress/unittests/sshsig/testdata/ecdsa.pub create mode 100644 regress/unittests/sshsig/testdata/ecdsa.sig create mode 100644 regress/unittests/sshsig/testdata/ecdsa_sk create mode 100644 regress/unittests/sshsig/testdata/ecdsa_sk.pub create mode 100644 regress/unittests/sshsig/testdata/ecdsa_sk.sig create mode 100644 regress/unittests/sshsig/testdata/ed25519 create mode 100644 regress/unittests/sshsig/testdata/ed25519.pub create mode 100644 regress/unittests/sshsig/testdata/ed25519.sig create mode 100644 regress/unittests/sshsig/testdata/ed25519_sk create mode 100644 regress/unittests/sshsig/testdata/ed25519_sk.pub create mode 100644 regress/unittests/sshsig/testdata/ed25519_sk.sig create mode 100644 regress/unittests/sshsig/testdata/namespace create mode 100644 regress/unittests/sshsig/testdata/rsa create mode 100644 regress/unittests/sshsig/testdata/rsa.pub create mode 100644 regress/unittests/sshsig/testdata/rsa.sig create mode 100644 regress/unittests/sshsig/testdata/signed-data create mode 100644 regress/unittests/sshsig/tests.c diff --git a/.gitignore b/.gitignore index 34a95721d..043674f43 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,5 @@ ssh-pkcs11-helper ssh-sk-helper sshd !regress/misc/fuzz-harness/Makefile +!regress/unittests/sshsig/Makefile tags diff --git a/regress/unittests/sshsig/Makefile b/regress/unittests/sshsig/Makefile new file mode 100644 index 000000000..4b607df45 --- /dev/null +++ b/regress/unittests/sshsig/Makefile @@ -0,0 +1,25 @@ +# $OpenBSD: Makefile,v 1.1 2020/06/19 04:32:09 djm Exp $ + +PROG=test_sshsig +SRCS=tests.c + +# From usr.bin/ssh +SRCS+=sshbuf-getput-basic.c sshbuf-getput-crypto.c sshbuf-misc.c sshbuf.c +SRCS+=sshbuf-io.c atomicio.c sshkey.c authfile.c cipher.c log.c ssh-rsa.c +SRCS+=ssh-dss.c ssh-ecdsa.c ssh-ed25519.c mac.c umac.c umac128.c hmac.c misc.c +SRCS+=ssherr.c uidswap.c cleanup.c xmalloc.c match.c krl.c fatal.c +SRCS+=addrmatch.c bitmap.c sshsig.c +SRCS+=ed25519.c hash.c ge25519.c fe25519.c sc25519.c verify.c +SRCS+=cipher-chachapoly.c chacha.c poly1305.c ssh-ecdsa-sk.c ssh-sk.c +SRCS+=ssh-ed25519-sk.c sk-usbhid.c + +SRCS+=digest-openssl.c +#SRCS+=digest-libc.c +SRCS+=utf8.c + +REGRESS_TARGETS=run-regress-${PROG} + +run-regress-${PROG}: ${PROG} + env ${TEST_ENV} ./${PROG} ${UNITTEST_ARGS} -d ${.CURDIR}/testdata + +.include diff --git a/regress/unittests/sshsig/mktestdata.sh b/regress/unittests/sshsig/mktestdata.sh new file mode 100755 index 000000000..d2300f9c6 --- /dev/null +++ b/regress/unittests/sshsig/mktestdata.sh @@ -0,0 +1,42 @@ +#!/bin/sh +# $OpenBSD: mktestdata.sh,v 1.1 2020/06/19 04:32:09 djm Exp $ + +NAMESPACE=unittest + +set -ex + +cd testdata + +if [ -f ../../../misc/sk-dummy/sk-dummy.so ] ; then + SK_DUMMY=../../../misc/sk-dummy/sk-dummy.so +elif [ -f ../../../misc/sk-dummy/obj/sk-dummy.so ] ; then + SK_DUMMY=../../../misc/sk-dummy/obj/sk-dummy.so +else + echo "Can't find sk-dummy.so" 1>&2 + exit 1 +fi + +rm -f signed-data namespace +rm -f rsa dsa ecdsa ed25519 ecdsa_sk ed25519_sk +rm -f rsa.sig dsa.sig ecdsa.sig ed25519.sig ecdsa_sk.sig ed25519_sk.sig + +printf "This is a test, this is only a test" > signed-data +printf "$NAMESPACE" > namespace + +ssh-keygen -t rsa -C "RSA test" -N "" -f rsa -m PEM +ssh-keygen -t dsa -C "DSA test" -N "" -f dsa -m PEM +ssh-keygen -t ecdsa -C "ECDSA test" -N "" -f ecdsa -m PEM +ssh-keygen -t ed25519 -C "ED25519 test key" -N "" -f ed25519 +ssh-keygen -w "$SK_DUMMY" -t ecdsa-sk -C "ECDSA-SK test key" \ + -N "" -f ecdsa_sk +ssh-keygen -w "$SK_DUMMY" -t ed25519-sk -C "ED25519-SK test key" \ + -N "" -f ed25519_sk + +ssh-keygen -Y sign -f rsa -n $NAMESPACE - < signed-data > rsa.sig +ssh-keygen -Y sign -f dsa -n $NAMESPACE - < signed-data > dsa.sig +ssh-keygen -Y sign -f ecdsa -n $NAMESPACE - < signed-data > ecdsa.sig +ssh-keygen -Y sign -f ed25519 -n $NAMESPACE - < signed-data > ed25519.sig +ssh-keygen -w "$SK_DUMMY" \ + -Y sign -f ecdsa_sk -n $NAMESPACE - < signed-data > ecdsa_sk.sig +ssh-keygen -w "$SK_DUMMY" \ + -Y sign -f ed25519_sk -n $NAMESPACE - < signed-data > ed25519_sk.sig diff --git a/regress/unittests/sshsig/testdata/dsa b/regress/unittests/sshsig/testdata/dsa new file mode 100644 index 000000000..7c0063efc --- /dev/null +++ b/regress/unittests/sshsig/testdata/dsa @@ -0,0 +1,12 @@ +-----BEGIN DSA PRIVATE KEY----- +MIIBuwIBAAKBgQCXpndQdz2mQVnk+lYOF3nxDT+h6SiJmUvBFhnFWBv8tG4pTOkb +EwGufLEzGpzjTj+3bjVau7LFt37AFrqs4Num272BWNsYNIjOlGPgq7Xjv32FN00x +JYh1DoRs1cGGnvohlsWEamGGhTHD1a9ipctPEBV+NrxtZMrl+pO/ZZg8vQIVAKJB +P3iNYSpSuW74+q4WxLCuK8O3AoGAQldE+BIuxlvoG1IFiWesx0CU+H2KO0SEZc9A +SX/qjOabh0Fb78ofTlEf9gWHFfat8SvSJQIOPMVlb76Lio8AAMT8Eaa/qQKKYmQL +dNq4MLhhjxx5KLGt6J2JyFPExCv+qnHYHD59ngtLwKyqGjpSC8LPLktdXn8W/Aad +Ly1K7+MCgYBsMHBczhSeUh8w7i20CVg4OlNTmfJRVU2tO6OpMxZ/quitRm3hLKSN +u4xRkvHJwi4LhQtv1SXvLI5gs5P3gCG8tsIAiyCqLinHha63iBdJpqhnV/x/j7dB +yJr3xJbnmLdWLkkCtNk1Ir1/CuEz+ufAyLGdKWksEAu1UUlb501BkwIVAILIa3Rg +0h7J9lQpHJphvF3K0M1T +-----END DSA PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/dsa.pub b/regress/unittests/sshsig/testdata/dsa.pub new file mode 100644 index 000000000..e77aa7ef4 --- /dev/null +++ b/regress/unittests/sshsig/testdata/dsa.pub @@ -0,0 +1 @@ +ssh-dss AAAAB3NzaC1kc3MAAACBAJemd1B3PaZBWeT6Vg4XefENP6HpKImZS8EWGcVYG/y0bilM6RsTAa58sTManONOP7duNVq7ssW3fsAWuqzg26bbvYFY2xg0iM6UY+CrteO/fYU3TTEliHUOhGzVwYae+iGWxYRqYYaFMcPVr2Kly08QFX42vG1kyuX6k79lmDy9AAAAFQCiQT94jWEqUrlu+PquFsSwrivDtwAAAIBCV0T4Ei7GW+gbUgWJZ6zHQJT4fYo7RIRlz0BJf+qM5puHQVvvyh9OUR/2BYcV9q3xK9IlAg48xWVvvouKjwAAxPwRpr+pAopiZAt02rgwuGGPHHkosa3onYnIU8TEK/6qcdgcPn2eC0vArKoaOlILws8uS11efxb8Bp0vLUrv4wAAAIBsMHBczhSeUh8w7i20CVg4OlNTmfJRVU2tO6OpMxZ/quitRm3hLKSNu4xRkvHJwi4LhQtv1SXvLI5gs5P3gCG8tsIAiyCqLinHha63iBdJpqhnV/x/j7dByJr3xJbnmLdWLkkCtNk1Ir1/CuEz+ufAyLGdKWksEAu1UUlb501Bkw== DSA test diff --git a/regress/unittests/sshsig/testdata/dsa.sig b/regress/unittests/sshsig/testdata/dsa.sig new file mode 100644 index 000000000..0b14ad6b8 --- /dev/null +++ b/regress/unittests/sshsig/testdata/dsa.sig @@ -0,0 +1,13 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAbEAAAAHc3NoLWRzcwAAAIEAl6Z3UHc9pkFZ5PpWDhd58Q0/oekoiZ +lLwRYZxVgb/LRuKUzpGxMBrnyxMxqc404/t241Wruyxbd+wBa6rODbptu9gVjbGDSIzpRj +4Ku14799hTdNMSWIdQ6EbNXBhp76IZbFhGphhoUxw9WvYqXLTxAVfja8bWTK5fqTv2WYPL +0AAAAVAKJBP3iNYSpSuW74+q4WxLCuK8O3AAAAgEJXRPgSLsZb6BtSBYlnrMdAlPh9ijtE +hGXPQEl/6ozmm4dBW+/KH05RH/YFhxX2rfEr0iUCDjzFZW++i4qPAADE/BGmv6kCimJkC3 +TauDC4YY8ceSixreidichTxMQr/qpx2Bw+fZ4LS8Csqho6UgvCzy5LXV5/FvwGnS8tSu/j +AAAAgGwwcFzOFJ5SHzDuLbQJWDg6U1OZ8lFVTa07o6kzFn+q6K1GbeEspI27jFGS8cnCLg +uFC2/VJe8sjmCzk/eAIby2wgCLIKouKceFrreIF0mmqGdX/H+Pt0HImvfElueYt1YuSQK0 +2TUivX8K4TP658DIsZ0paSwQC7VRSVvnTUGTAAAACHVuaXR0ZXN0AAAAAAAAAAZzaGE1MT +IAAAA3AAAAB3NzaC1kc3MAAAAodi5lr0pqBpO76OY4N1CtfR85BCgZ95qfVjP/e9lToj0q +lwjSJJXUjw== +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/ecdsa b/regress/unittests/sshsig/testdata/ecdsa new file mode 100644 index 000000000..55fb440e0 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa @@ -0,0 +1,5 @@ +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIFg0ZCSEB5LNeLsXYL25g3kqEWsqh52DR+yNOjyQJqyZoAoGCCqGSM49 +AwEHoUQDQgAE3sud88FV0N8FPspZSV7LWqj6uPPLRZiSsenNuEYAteWPyDgrZsWb +LzXBuUJucepaCNuW/QWgHBRbrjWj3ERm3A== +-----END EC PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/ecdsa.pub b/regress/unittests/sshsig/testdata/ecdsa.pub new file mode 100644 index 000000000..14ec6cf12 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa.pub @@ -0,0 +1 @@ +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBN7LnfPBVdDfBT7KWUley1qo+rjzy0WYkrHpzbhGALXlj8g4K2bFmy81wblCbnHqWgjblv0FoBwUW641o9xEZtw= ECDSA test diff --git a/regress/unittests/sshsig/testdata/ecdsa.sig b/regress/unittests/sshsig/testdata/ecdsa.sig new file mode 100644 index 000000000..79781570c --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa.sig @@ -0,0 +1,7 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAGgAAAATZWNkc2Etc2hhMi1uaXN0cDI1NgAAAAhuaXN0cDI1NgAAAE +EE3sud88FV0N8FPspZSV7LWqj6uPPLRZiSsenNuEYAteWPyDgrZsWbLzXBuUJucepaCNuW +/QWgHBRbrjWj3ERm3AAAAAh1bml0dGVzdAAAAAAAAAAGc2hhNTEyAAAAZQAAABNlY2RzYS +1zaGEyLW5pc3RwMjU2AAAASgAAACEAycVNsTlE+XEZYyYiDxWZlliruf/pPMhEEMR/XLdQ +a4MAAAAhALQt+5gES7L3uKGptHB6UZQMuZ2WyI0C6FJs4v6AtMIU +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/ecdsa_sk b/regress/unittests/sshsig/testdata/ecdsa_sk new file mode 100644 index 000000000..62ae44cb0 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa_sk @@ -0,0 +1,13 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAfwAAACJzay1lY2 +RzYS1zaGEyLW5pc3RwMjU2QG9wZW5zc2guY29tAAAACG5pc3RwMjU2AAAAQQSg1WuY0XE+ +VexOsrJsFYuxyVoe6eQ/oXmyz2pEHKZw9moyWehv+Fs7oZWFp3JVmOtybKQ6dvfUZYauQE +/Ov4PAAAAABHNzaDoAAAGI6iV41+oleNcAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBv +cGVuc3NoLmNvbQAAAAhuaXN0cDI1NgAAAEEEoNVrmNFxPlXsTrKybBWLsclaHunkP6F5ss +9qRBymcPZqMlnob/hbO6GVhadyVZjrcmykOnb31GWGrkBPzr+DwAAAAARzc2g6AQAAAOMt +LS0tLUJFR0lOIEVDIFBSSVZBVEUgS0VZLS0tLS0KTUhjQ0FRRUVJQm9oeW54M2tpTFVEeS +t5UjU3WXBXSU5KektnU1p6WnV2VTljYXFla3JGcW9Bb0dDQ3FHU000OQpBd0VIb1VRRFFn +QUVvTlZybU5GeFBsWHNUckt5YkJXTHNjbGFIdW5rUDZGNXNzOXFSQnltY1BacU1sbm9iL2 +hiCk82R1ZoYWR5VlpqcmNteWtPbmIzMUdXR3JrQlB6citEd0E9PQotLS0tLUVORCBFQyBQ +UklWQVRFIEtFWS0tLS0tCgAAAAAAAAARRUNEU0EtU0sgdGVzdCBrZXk= +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/ecdsa_sk.pub b/regress/unittests/sshsig/testdata/ecdsa_sk.pub new file mode 100644 index 000000000..385ebf15b --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa_sk.pub @@ -0,0 +1 @@ +sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBKDVa5jRcT5V7E6ysmwVi7HJWh7p5D+hebLPakQcpnD2ajJZ6G/4WzuhlYWnclWY63JspDp299Rlhq5AT86/g8AAAAAEc3NoOg== ECDSA-SK test key diff --git a/regress/unittests/sshsig/testdata/ecdsa_sk.sig b/regress/unittests/sshsig/testdata/ecdsa_sk.sig new file mode 100644 index 000000000..86de36063 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa_sk.sig @@ -0,0 +1,8 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAH8AAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBvcGVuc3NoLmNvbQ +AAAAhuaXN0cDI1NgAAAEEEoNVrmNFxPlXsTrKybBWLsclaHunkP6F5ss9qRBymcPZqMlno +b/hbO6GVhadyVZjrcmykOnb31GWGrkBPzr+DwAAAAARzc2g6AAAACHVuaXR0ZXN0AAAAAA +AAAAZzaGE1MTIAAAB3AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20A +AABIAAAAIHohGwyy8iKT3zwd1TYA9V/Ioo7h/3zCJUtyq/Qigt/HAAAAIGzidTwq7D/kFa +7Xjcp/KkdbIs4MfQpfAW/0OciajlpzARI0Vng= +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/ed25519 b/regress/unittests/sshsig/testdata/ed25519 new file mode 100644 index 000000000..b44a63d3e --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519 @@ -0,0 +1,7 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW +QyNTUxOQAAACCJYs0iDdw0Fe/FTzY1b78I4H/j+R6mz2AmLtwTjHYwBAAAAJjpGas/6Rmr +PwAAAAtzc2gtZWQyNTUxOQAAACCJYs0iDdw0Fe/FTzY1b78I4H/j+R6mz2AmLtwTjHYwBA +AAAEDpSKRA1QKW6kYiQftGRWh+H0fNekzYLG6c3bzseoCpEolizSIN3DQV78VPNjVvvwjg +f+P5HqbPYCYu3BOMdjAEAAAAEEVEMjU1MTkgdGVzdCBrZXkBAgMEBQ== +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/ed25519.pub b/regress/unittests/sshsig/testdata/ed25519.pub new file mode 100644 index 000000000..b078e4516 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519.pub @@ -0,0 +1 @@ +ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIlizSIN3DQV78VPNjVvvwjgf+P5HqbPYCYu3BOMdjAE ED25519 test key diff --git a/regress/unittests/sshsig/testdata/ed25519.sig b/regress/unittests/sshsig/testdata/ed25519.sig new file mode 100644 index 000000000..8e8ff2a8a --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519.sig @@ -0,0 +1,6 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgiWLNIg3cNBXvxU82NW+/COB/4/ +keps9gJi7cE4x2MAQAAAAIdW5pdHRlc3QAAAAAAAAABnNoYTUxMgAAAFMAAAALc3NoLWVk +MjU1MTkAAABAihQsbUzuNEFflk5Tw1+H9aLS7tZQk0RG8KW1DtOmDYYnWe3D3UKiG3fcJa +DNg4vBWp1j1gLRiBMOF+gwYNegDg== +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/ed25519_sk b/regress/unittests/sshsig/testdata/ed25519_sk new file mode 100644 index 000000000..3a434ecb9 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519_sk @@ -0,0 +1,8 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAASgAAABpzay1zc2 +gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAACCbGg2F0GK7nOm4pQmAyCuGEjnhvs5q0TtjPbdN +//+yxwAAAARzc2g6AAAAuBw56jAcOeowAAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY2 +9tAAAAIJsaDYXQYruc6bilCYDIK4YSOeG+zmrRO2M9t03//7LHAAAABHNzaDoBAAAAQFXc +6dCwWewIk1EBofAouGZApW8+s0XekXenxtb78+x0mxoNhdBiu5zpuKUJgMgrhhI54b7Oat +E7Yz23Tf//sscAAAAAAAAAE0VEMjU1MTktU0sgdGVzdCBrZXkBAgMEBQY= +-----END OPENSSH PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/ed25519_sk.pub b/regress/unittests/sshsig/testdata/ed25519_sk.pub new file mode 100644 index 000000000..71051ec3b --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519_sk.pub @@ -0,0 +1 @@ +sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIJsaDYXQYruc6bilCYDIK4YSOeG+zmrRO2M9t03//7LHAAAABHNzaDo= ED25519-SK test key diff --git a/regress/unittests/sshsig/testdata/ed25519_sk.sig b/regress/unittests/sshsig/testdata/ed25519_sk.sig new file mode 100644 index 000000000..49b6818da --- /dev/null +++ b/regress/unittests/sshsig/testdata/ed25519_sk.sig @@ -0,0 +1,7 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAEoAAAAac2stc3NoLWVkMjU1MTlAb3BlbnNzaC5jb20AAAAgmxoNhd +Biu5zpuKUJgMgrhhI54b7OatE7Yz23Tf//sscAAAAEc3NoOgAAAAh1bml0dGVzdAAAAAAA +AAAGc2hhNTEyAAAAZwAAABpzay1zc2gtZWQyNTUxOUBvcGVuc3NoLmNvbQAAAEAi+7eTjW +/+LQ2M+sCD+KFtH1n7VFFJon/SZFsxODyV8cWTlFKj617Ys1Ur5TV6uaEXQhck8rBA2oQI +HTPANLIPARI0Vng= +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/namespace b/regress/unittests/sshsig/testdata/namespace new file mode 100644 index 000000000..1570cd548 --- /dev/null +++ b/regress/unittests/sshsig/testdata/namespace @@ -0,0 +1 @@ +unittest \ No newline at end of file diff --git a/regress/unittests/sshsig/testdata/rsa b/regress/unittests/sshsig/testdata/rsa new file mode 100644 index 000000000..228fad797 --- /dev/null +++ b/regress/unittests/sshsig/testdata/rsa @@ -0,0 +1,39 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIG4wIBAAKCAYEA386lmjRHtJpyj87BrS+ssMmtvc/1SPN0gXTPs9jZ1hYAq98P +ca3/RYVM4HaSu6COztQJ2ZnZD3Te/XeBnIU2mfuvQEl+DiwisGeNglVyRCi7787f +PFFfcxzZfDa7EB2qY8S3oaSGZK8QqzuGwmGAImjlQXz6J+HCd/eD/58GoCSSirIE +CFWCAt+uNrOC/EmgAzsbfcfaIbbVzA40tlgU3hO2J42kddz8CisDTtDKQABFcOaQ +ZycSfn7HDP+WgXLXXBUI9wVM1Tif1f+9MX08xIsvCvGzo7yLgbbTFLSGr5SkA+tO +rYuoA7V8fge0id/3pnVtG1Ui3I7vejeAwf0HZqtFeBEnOwkIJFmZeMtFeOVf+4ki +4h1rDqAvSscNvMtLp6OXpbAATATAuEWEkIQBl1rngnEe0iC9iU9itKMW6qJ4FtIb +4ACH1EoU1x8vqrFecg2hvqfk5CZBJIbV28JFuGjac3OxBZ17Fqb8ljomUir1GrET +2z66NMgb5TjDD7BVAgMBAAECggGACfjDGCPMLhfTkuS7bGP7ZcUWoKZrX1y5jCsQ +NgsraYaBcSb3ITGHdimCS139G68DreN0rOVV7oJejRyOAdNNo367SDn+C9ObmBCF +FZGJDdBiz0SAXceiYRaf+hDWNNmdheR16hXShxnlvDtivbZqZx4VWN2gp7Y/W+kD +UJhdSzVV8igMVfK5YDdnI7jL1UHSh1JS3z/QUEA9NmJLpvQ1uc9XBlwhP78g27Me +6pwS5tccQPOE65OqF0i+xa19nzbmnC940Y34yZeI/UE+PYaO2+asapvOfu/sboBH +Yb5BuWXVEkSeRWI23SpuZbmfNTtVgiRoRqOvqM4G88LkhYjZ6xpDggxQwJiShiiD +oWCucs0v3pX8H8/LbGs8l50SGI5nzUqAdZ7/QQucU/GuDiQtampntkLEDgf9KIw/ +SDrtCw1E9fnCWj4Z71IYfepY9bVY6QUEcfTdnDcYSY1Z5tVpzeMHVLeo0lbNVZv9 +2qmPnjjP/IvWbjjwu/PHpUWkUs0BAoHBAPx4YwPXWYgWnesMKXkjAHyO5KA4EyBr ++rcEmOZkZDibC8PKYzIK2ztptuthahVovW20R/QJhJkO5teGZMeGPFq+floCeC5P +la9CEYGYcTrzgSe1QM9IGMr1vGI1KIWck7VkJ0bkKoY40uIJSVZxnyG9pEpcwYSp +tnOqA/f5YZUFctWvXUz46OfiLKstXLrcrGIU7YRmLv2rW9twnpJYTzE98g3KpVJ2 +TI1pyvrDTdGeAQUTGCAjpviY6XR5d020vQKBwQDi76wsGLQ3XLI+OAE95Ljo0Mcl ++KdJPVVQPq/VcjKgZQndFloflMRrmgNHme9gmsHOrf8DLZvEDbtT+gbmWslMFZQ9 +om1kR404gfuGmfIYdBdOwWjuBLsZs3pfqDB4Xa3NkxljwOMYTp035n0r2UMFaSy3 +gvpW7fsdPOGAJsqNhSw/JNHcokHeBm7VbV0aD7tSyIghmARb5c98fmrSPbiEo8mP +ITIZlgbfZCq2KuXY4q16R3QvlpuSwitVobLR/3kCgcEAueH5JM7dQHFGe9RMhL/c +j9i1Q7GFg4183lsoKBkqIPMmylSsjB+qIihHYS4r6O9g6PCfOXH4iqiKFY0BjlWr +AjTW2naO/aniz1KZiQ0v8PNv2Eh/Gx4+AtDCjpwM5bLOnfLLaEp9dK1JttqXgGnP +fAwgdg+s+3votWgr29tkmU+VqPagfxeUg4Xm1XFkoL/wu5Yk+iIx3trXms1kMuOK +CvtMyBK3fetTmZqWs+Iv3XGz1oSkcqVNPiN3XyY/TJsRAoG/Q17jvjOXTNg4EkCO +HdHJE1Tnyl4HS7bpnOj/Sl6cqQFV7Ey2dKm1pjwSvS714bgP0UvWaRshIxLwif2w +DrLlD7FYUPPnhd24Dw6HnW4WcSwFv1uryv2cjgS6T6ueuB0Xe/AvmW2p/Y1ZHz9N +6baWLwUKQXCg4S3FXui0CVd6yoi+mgBUTSveYguG29WbziDde7YMs+xtXtravhrJ +m6C3Jql5LQSt2uqvH6KdC3ewxLKGzcZot7f+d5MtSj6216ECgcEA9PGmWeUkhVuW +Xz2c9iBeHwCtmDso7gVwxNnHqdqirB4f1nDCGbrJS7hz5Ss7/wfzekP2W5if2P6U +JPUdfykAQgALNn1twAtj1a+UAp31ZWu8JK/Qzt4hLJPBxzMo7MenJq189JmYmDnm +6D5d9vDLCW15gCZua89GZa8K8V50lYyeHBOHAyzNTfNlnMBkHyP645+nqpuEWzIT +3mCe2OAbl60o8VvvVUlAQyQ/ObLq37HHEoDu0U/YAnP157cxpa84 +-----END RSA PRIVATE KEY----- diff --git a/regress/unittests/sshsig/testdata/rsa.pub b/regress/unittests/sshsig/testdata/rsa.pub new file mode 100644 index 000000000..30142ac0a --- /dev/null +++ b/regress/unittests/sshsig/testdata/rsa.pub @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDfzqWaNEe0mnKPzsGtL6ywya29z/VI83SBdM+z2NnWFgCr3w9xrf9FhUzgdpK7oI7O1AnZmdkPdN79d4GchTaZ+69ASX4OLCKwZ42CVXJEKLvvzt88UV9zHNl8NrsQHapjxLehpIZkrxCrO4bCYYAiaOVBfPon4cJ394P/nwagJJKKsgQIVYIC3642s4L8SaADOxt9x9ohttXMDjS2WBTeE7YnjaR13PwKKwNO0MpAAEVw5pBnJxJ+fscM/5aBctdcFQj3BUzVOJ/V/70xfTzEiy8K8bOjvIuBttMUtIavlKQD606ti6gDtXx+B7SJ3/emdW0bVSLcju96N4DB/Qdmq0V4ESc7CQgkWZl4y0V45V/7iSLiHWsOoC9Kxw28y0uno5elsABMBMC4RYSQhAGXWueCcR7SIL2JT2K0oxbqongW0hvgAIfUShTXHy+qsV5yDaG+p+TkJkEkhtXbwkW4aNpzc7EFnXsWpvyWOiZSKvUasRPbPro0yBvlOMMPsFU= RSA test diff --git a/regress/unittests/sshsig/testdata/rsa.sig b/regress/unittests/sshsig/testdata/rsa.sig new file mode 100644 index 000000000..15a032e01 --- /dev/null +++ b/regress/unittests/sshsig/testdata/rsa.sig @@ -0,0 +1,19 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAZcAAAAHc3NoLXJzYQAAAAMBAAEAAAGBAN/OpZo0R7Saco/Owa0vrL +DJrb3P9UjzdIF0z7PY2dYWAKvfD3Gt/0WFTOB2krugjs7UCdmZ2Q903v13gZyFNpn7r0BJ +fg4sIrBnjYJVckQou+/O3zxRX3Mc2Xw2uxAdqmPEt6GkhmSvEKs7hsJhgCJo5UF8+ifhwn +f3g/+fBqAkkoqyBAhVggLfrjazgvxJoAM7G33H2iG21cwONLZYFN4TtieNpHXc/AorA07Q +ykAARXDmkGcnEn5+xwz/loFy11wVCPcFTNU4n9X/vTF9PMSLLwrxs6O8i4G20xS0hq+UpA +PrTq2LqAO1fH4HtInf96Z1bRtVItyO73o3gMH9B2arRXgRJzsJCCRZmXjLRXjlX/uJIuId +aw6gL0rHDbzLS6ejl6WwAEwEwLhFhJCEAZda54JxHtIgvYlPYrSjFuqieBbSG+AAh9RKFN +cfL6qxXnINob6n5OQmQSSG1dvCRbho2nNzsQWdexam/JY6JlIq9RqxE9s+ujTIG+U4ww+w +VQAAAAh1bml0dGVzdAAAAAAAAAAGc2hhNTEyAAABlAAAAAxyc2Etc2hhMi01MTIAAAGACi +nEpBrQxZi0yOrrT6h98JFfZh0XXioih4fzmvtoV0yOReWClS+otGgXoJyZHcbaKNOjDwSM +rIkUoX6OUJmtHYP0HRELnKw35m33LdBPXpFGS4tRS7NeSpvc04KtjT6jYXY9FjWy5hcn17 +Sxc/3DnJqLgJBur8acY7FeIzpWmKixPd/dGkEjdWoD9gO6szLczGuQgrOdYmSRL4yKadTJ +lVjz5OSeKSYYGQy33US2XQassRRNYf4e9byTA3DKvHa/OcTt7lFerea0kZdDpAboqffz7T +Yaw/hFskAYLIEdTW3aoXBGHSOvu8AkDOtb7qwuxGSQ27pjkDLDNsp1ceCFaCaQ6X83RZuK +ACv9JUBI5KaSf81e0bs0KezJKkhB9czeZ6dk96qISbgayEBnvhYgXvUDKtHn7HzNlCJKfK +5ABhNxfGG2CD+NKqcrndwFgS1sQO3hbA84zPQb26ShBovT8ytHBmW1F8ZK4O9Bz61Q6EZK +vs/u6xP6LUean/so5daa +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/testdata/signed-data b/regress/unittests/sshsig/testdata/signed-data new file mode 100644 index 000000000..7df4bedd1 --- /dev/null +++ b/regress/unittests/sshsig/testdata/signed-data @@ -0,0 +1 @@ +This is a test, this is only a test \ No newline at end of file diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c new file mode 100644 index 000000000..ce59b96a2 --- /dev/null +++ b/regress/unittests/sshsig/tests.c @@ -0,0 +1,120 @@ +/* $OpenBSD: tests.c,v 1.1 2020/06/19 04:32:09 djm Exp $ */ +/* + * Regress test for sshbuf.h buffer API + * + * Placed in the public domain + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "ssherr.h" +#include "authfile.h" +#include "sshkey.h" +#include "sshbuf.h" +#include "sshsig.h" +#include "log.h" + +#include "test_helper.h" + +static struct sshbuf * +load_file(const char *name) +{ + struct sshbuf *ret = NULL; + + ASSERT_INT_EQ(sshbuf_load_file(test_data_file(name), &ret), 0); + ASSERT_PTR_NE(ret, NULL); + return ret; +} + +static struct sshkey * +load_key(const char *name) +{ + struct sshkey *ret = NULL; + ASSERT_INT_EQ(sshkey_load_public(test_data_file(name), &ret, NULL), 0); + ASSERT_PTR_NE(ret, NULL); + return ret; +} + +static void +check_sig(const char *keyname, const char *signame, const struct sshbuf *msg, + const char *namespace) +{ + struct sshkey *k, *sign_key; + struct sshbuf *sig, *rawsig; + struct sshkey_sig_details *sig_details; + + k = load_key(keyname); + sig = load_file(signame); + sign_key = NULL; + sig_details = NULL; + rawsig = NULL; + ASSERT_INT_EQ(sshsig_dearmor(sig, &rawsig), 0); + ASSERT_INT_EQ(sshsig_verifyb(rawsig, msg, namespace, + &sign_key, &sig_details), 0); + ASSERT_INT_EQ(sshkey_equal(k, sign_key), 1); + sshkey_free(k); + sshkey_free(sign_key); + sshkey_sig_details_free(sig_details); + sshbuf_free(sig); + sshbuf_free(rawsig); +} + +void +tests(void) +{ + struct sshbuf *msg; + char *namespace; + +#if 0 + log_init("test_sshsig", SYSLOG_LEVEL_DEBUG3, SYSLOG_FACILITY_AUTH, 1); +#endif + + OpenSSL_add_all_algorithms(); + ERR_load_CRYPTO_strings(); + + TEST_START("load data"); + msg = load_file("namespace"); + namespace = sshbuf_dup_string(msg); + ASSERT_PTR_NE(namespace, NULL); + sshbuf_free(msg); + msg = load_file("signed-data"); + TEST_DONE(); + + TEST_START("check RSA signature"); + check_sig("rsa", "rsa.sig", msg, namespace); + TEST_DONE(); + + TEST_START("check DSA signature"); + check_sig("dsa", "dsa.sig", msg, namespace); + TEST_DONE(); + + TEST_START("check ECDSA signature"); + check_sig("ecdsa", "ecdsa.sig", msg, namespace); + TEST_DONE(); + + TEST_START("check ED25519 signature"); + check_sig("ed25519", "ed25519.sig", msg, namespace); + TEST_DONE(); + + TEST_START("check ECDSA-SK signature"); + check_sig("ecdsa_sk", "ecdsa_sk.sig", msg, namespace); + TEST_DONE(); + + TEST_START("check ED25519-SK signature"); + check_sig("ed25519_sk", "ed25519_sk.sig", msg, namespace); + TEST_DONE(); + + sshbuf_free(msg); + free(namespace); +} -- cgit v1.2.3 From 68e8294f6b04f9590ea227e63d3e129398a49e27 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 19 Jun 2020 04:34:21 +0000 Subject: upstream: run sshsig unit tests OpenBSD-Regress-ID: 706ef17e2b545b64873626e0e35553da7c06052a --- regress/unittests/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/regress/unittests/Makefile b/regress/unittests/Makefile index 4e56e1104..4d26b7477 100644 --- a/regress/unittests/Makefile +++ b/regress/unittests/Makefile @@ -1,7 +1,7 @@ -# $OpenBSD: Makefile,v 1.11 2019/04/28 22:53:26 dtucker Exp $ +# $OpenBSD: Makefile,v 1.12 2020/06/19 04:34:21 djm Exp $ REGRESS_FAIL_EARLY?= yes SUBDIR= test_helper sshbuf sshkey bitmap kex hostkeys utf8 match conversion -SUBDIR+=authopt misc +SUBDIR+=authopt misc sshsig .include -- cgit v1.2.3 From 5dba1fcabacaab46693338ec829b42a1293d1f52 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 19 Jun 2020 05:07:09 +0000 Subject: upstream: Test that ssh-agent exits when running as as subprocess of a specified command (ie "ssh-agent command"). Would have caught bz#3181. OpenBSD-Regress-ID: 895b4765ba5153eefaea3160a7fe08ac0b6db8b3 --- regress/Makefile | 3 ++- regress/agent-subprocess.sh | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 regress/agent-subprocess.sh diff --git a/regress/Makefile b/regress/Makefile index 62794d25f..db0268fc0 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.108 2020/04/20 04:44:47 djm Exp $ +# $OpenBSD: Makefile,v 1.109 2020/06/19 05:07:09 dtucker Exp $ tests: prep file-tests t-exec unit @@ -41,6 +41,7 @@ LTESTS= connect \ agent-getpeereid \ agent-timeout \ agent-ptrace \ + agent-subprocess \ keyscan \ keygen-change \ keygen-convert \ diff --git a/regress/agent-subprocess.sh b/regress/agent-subprocess.sh new file mode 100644 index 000000000..2f36d70cc --- /dev/null +++ b/regress/agent-subprocess.sh @@ -0,0 +1,22 @@ +# $OpenBSD: agent-subprocess.sh,v 1.1 2020/06/19 05:07:09 dtucker Exp $ +# Placed in the Public Domain. + +tid="agent subprocess" + +trace "ensure agent exits when run as subprocess" +${SSHAGENT} sh -c "echo \$SSH_AGENT_PID >$OBJ/pidfile; sleep 1" + +pid=`cat $OBJ/pidfile` + +# Currently ssh-agent polls every 10s so we need to wait at least that long. +n=12 +while kill -0 $pid >/dev/null 2>&1 && test "$n" -gt "0"; do + n=$(($n - 1)) + sleep 1 +done + +if test "$n" -eq "0"; then + fail "agent still running" +fi + +rm -f $OBJ/pidfile -- cgit v1.2.3 From 80610e97a76407ca982e62fd051c9be03622fe7b Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 19 Jun 2020 17:15:27 +1000 Subject: Hook sshsig tests up to Portable Makefiles. --- Makefile.in | 17 +++++++++++++++++ regress/Makefile | 2 ++ regress/unittests/sshsig/tests.c | 2 +- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index c9e4294d3..99dfdceda 100644 --- a/Makefile.in +++ b/Makefile.in @@ -277,6 +277,8 @@ clean: regressclean rm -f regress/unittests/sshbuf/test_sshbuf$(EXEEXT) rm -f regress/unittests/sshkey/*.o rm -f regress/unittests/sshkey/test_sshkey$(EXEEXT) + rm -f regress/unittests/sshsig/*.o + rm -f regress/unittests/sshsig/test_sshsig$(EXEEXT) rm -f regress/unittests/bitmap/*.o rm -f regress/unittests/bitmap/test_bitmap$(EXEEXT) rm -f regress/unittests/conversion/*.o @@ -310,6 +312,8 @@ distclean: regressclean rm -f regress/unittests/sshbuf/test_sshbuf rm -f regress/unittests/sshkey/*.o rm -f regress/unittests/sshkey/test_sshkey + rm -f regress/unittests/sshsig/*.o + rm -f regress/unittests/sshsig/test_sshsig rm -f regress/unittests/bitmap/*.o rm -f regress/unittests/bitmap/test_bitmap rm -f regress/unittests/conversion/*.o @@ -488,6 +492,7 @@ regress-prep: $(MKDIR_P) `pwd`/regress/unittests/test_helper $(MKDIR_P) `pwd`/regress/unittests/sshbuf $(MKDIR_P) `pwd`/regress/unittests/sshkey + $(MKDIR_P) `pwd`/regress/unittests/sshsig $(MKDIR_P) `pwd`/regress/unittests/bitmap $(MKDIR_P) `pwd`/regress/unittests/conversion $(MKDIR_P) `pwd`/regress/unittests/hostkeys @@ -559,6 +564,17 @@ regress/unittests/sshkey/test_sshkey$(EXEEXT): ${UNITTESTS_TEST_SSHKEY_OBJS} \ regress/unittests/test_helper/libtest_helper.a \ -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) +UNITTESTS_TEST_SSHSIG_OBJS=\ + sshsig.o \ + regress/unittests/sshsig/tests.o \ + $(SKOBJS) + +regress/unittests/sshsig/test_sshsig$(EXEEXT): ${UNITTESTS_TEST_SSHSIG_OBJS} \ + regress/unittests/test_helper/libtest_helper.a libssh.a + $(LD) -o $@ $(LDFLAGS) $(UNITTESTS_TEST_SSHSIG_OBJS) \ + regress/unittests/test_helper/libtest_helper.a \ + -lssh -lopenbsd-compat -lssh -lopenbsd-compat $(LIBS) + UNITTESTS_TEST_BITMAP_OBJS=\ regress/unittests/bitmap/tests.o @@ -655,6 +671,7 @@ regress-binaries: regress-prep $(LIBCOMPAT) \ 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/bitmap/test_bitmap$(EXEEXT) \ regress/unittests/conversion/test_conversion$(EXEEXT) \ regress/unittests/hostkeys/test_hostkeys$(EXEEXT) \ diff --git a/regress/Makefile b/regress/Makefile index db0268fc0..8b4ed9de3 100644 --- a/regress/Makefile +++ b/regress/Makefile @@ -251,6 +251,8 @@ unit: $$V ${.OBJDIR}/unittests/sshbuf/test_sshbuf ; \ $$V ${.OBJDIR}/unittests/sshkey/test_sshkey \ -d ${.CURDIR}/unittests/sshkey/testdata ; \ + $$V ${.OBJDIR}/unittests/sshsig/test_sshsig \ + -d ${.CURDIR}/unittests/sshsig/testdata ; \ $$V ${.OBJDIR}/unittests/bitmap/test_bitmap ; \ $$V ${.OBJDIR}/unittests/conversion/test_conversion ; \ $$V ${.OBJDIR}/unittests/kex/test_kex ; \ diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index ce59b96a2..2d69e8d49 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -25,7 +25,7 @@ #include "sshsig.h" #include "log.h" -#include "test_helper.h" +#include "../test_helper/test_helper.h" static struct sshbuf * load_file(const char *name) -- cgit v1.2.3 From e684b1ea365e070433f282a3c1dabc3e2311ce49 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 19 Jun 2020 18:38:39 +1000 Subject: Skip OpenSSL specific tests w/out OpenSSL. Allows unit tests to pass when configure'ed --without-openssl. --- regress/unittests/sshkey/test_file.c | 2 ++ regress/unittests/sshsig/tests.c | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/regress/unittests/sshkey/test_file.c b/regress/unittests/sshkey/test_file.c index 6afe3ba2b..7d767336e 100644 --- a/regress/unittests/sshkey/test_file.c +++ b/regress/unittests/sshkey/test_file.c @@ -422,6 +422,7 @@ sshkey_file_tests(void) sshkey_free(k1); +#if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("parse ECDSA-SK from private"); buf = load_file("ecdsa_sk1"); ASSERT_INT_EQ(sshkey_parse_private_fileblob(buf, "", &k1, NULL), 0); @@ -485,6 +486,7 @@ sshkey_file_tests(void) TEST_DONE(); sshkey_free(k1); +#endif TEST_START("parse Ed25519-SK from private"); buf = load_file("ed25519_sk1"); diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index 2d69e8d49..44dcf5ef7 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -80,8 +80,10 @@ tests(void) log_init("test_sshsig", SYSLOG_LEVEL_DEBUG3, SYSLOG_FACILITY_AUTH, 1); #endif +#ifdef WITH_OPENSSL OpenSSL_add_all_algorithms(); ERR_load_CRYPTO_strings(); +#endif TEST_START("load data"); msg = load_file("namespace"); @@ -91,6 +93,7 @@ tests(void) msg = load_file("signed-data"); TEST_DONE(); +#ifdef WITH_OPENSSL TEST_START("check RSA signature"); check_sig("rsa", "rsa.sig", msg, namespace); TEST_DONE(); @@ -99,17 +102,22 @@ tests(void) check_sig("dsa", "dsa.sig", msg, namespace); TEST_DONE(); +#ifdef OPENSSL_HAS_ECC TEST_START("check ECDSA signature"); check_sig("ecdsa", "ecdsa.sig", msg, namespace); TEST_DONE(); +#endif +#endif TEST_START("check ED25519 signature"); check_sig("ed25519", "ed25519.sig", msg, namespace); TEST_DONE(); +#if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("check ECDSA-SK signature"); check_sig("ecdsa_sk", "ecdsa_sk.sig", msg, namespace); TEST_DONE(); +#endif TEST_START("check ED25519-SK signature"); check_sig("ed25519_sk", "ed25519_sk.sig", msg, namespace); -- cgit v1.2.3 From 9e065729592633290e5ddb6852792913b2286545 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 19 Jun 2020 18:47:56 +1000 Subject: Add includes.h to new test. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes warnings eg "´bounded´ attribute directive ignor" from gcc. --- regress/unittests/sshsig/tests.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index 44dcf5ef7..a131795cd 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -5,6 +5,8 @@ * Placed in the public domain */ +#include "includes.h" + #include #include #include -- cgit v1.2.3 From 1babb8bb14c423011ca34c2f563bb1c51c8fbf1d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 19 Jun 2020 19:10:47 +1000 Subject: Extra brackets around sizeof() in bcrypt. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prevents following warning from clang 10: bcrypt_pbkdf.c:94:40: error: expression does not compute the number of elements in this array; element type is ´uint32_tÂ[...] place parentheses around the ´sizeof(uint64_t)´ expression to silence this warning --- openbsd-compat/bcrypt_pbkdf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openbsd-compat/bcrypt_pbkdf.c b/openbsd-compat/bcrypt_pbkdf.c index 785234563..36d5d085c 100644 --- a/openbsd-compat/bcrypt_pbkdf.c +++ b/openbsd-compat/bcrypt_pbkdf.c @@ -91,7 +91,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, sizeof(cdata) / (sizeof(uint64_t))); /* copy out */ for (i = 0; i < BCRYPT_WORDS; i++) { -- cgit v1.2.3 From b4556c8ad7177e379f0b60305a0cd70f12180e7c Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 19 Jun 2020 19:22:00 +1000 Subject: Add OPENBSD ORIGINAL marker to bcrypt_pbkdf. --- openbsd-compat/bcrypt_pbkdf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openbsd-compat/bcrypt_pbkdf.c b/openbsd-compat/bcrypt_pbkdf.c index 36d5d085c..62728d38f 100644 --- a/openbsd-compat/bcrypt_pbkdf.c +++ b/openbsd-compat/bcrypt_pbkdf.c @@ -15,6 +15,8 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +/* OPENBSD ORIGINAL: lib/libutil/bcrypt_pbkdf.c */ + #include "includes.h" #ifndef HAVE_BCRYPT_PBKDF -- cgit v1.2.3 From 00531bb42f1af17ddabea59c3d9c4b0629000d27 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 19 Jun 2020 07:21:42 +0000 Subject: upstream: Correct synopsis and usage for the options accepted when passing a command to ssh-agent. ok jmc@ OpenBSD-Commit-ID: b36f0679cb0cac0e33b361051b3406ade82ea846 --- ssh-agent.1 | 11 ++++++++--- ssh-agent.c | 6 ++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/ssh-agent.1 b/ssh-agent.1 index fff0db6bc..8e9295e9d 100644 --- a/ssh-agent.1 +++ b/ssh-agent.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-agent.1,v 1.70 2019/12/21 20:22:34 naddy Exp $ +.\" $OpenBSD: ssh-agent.1,v 1.71 2020/06/19 07:21:42 dtucker Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: December 21 2019 $ +.Dd $Mdocdate: June 19 2020 $ .Dt SSH-AGENT 1 .Os .Sh NAME @@ -48,7 +48,12 @@ .Op Fl E Ar fingerprint_hash .Op Fl P Ar provider_whitelist .Op Fl t Ar life -.Op Ar command Op Ar arg ... +.Nm ssh-agent +.Op Fl a Ar bind_address +.Op Fl E Ar fingerprint_hash +.Op Fl P Ar provider_whitelist +.Op Fl t Ar life +.Ar command Op Ar arg ... .Nm ssh-agent .Op Fl c | s .Fl k diff --git a/ssh-agent.c b/ssh-agent.c index effffffed..596c39582 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.258 2020/05/26 01:26:58 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.259 2020/06/19 07:21:42 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1254,7 +1254,9 @@ usage(void) { fprintf(stderr, "usage: ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash]\n" - " [-P provider_whitelist] [-t life] [command [arg ...]]\n" + " [-P provider_whitelist] [-t life]\n" + " ssh-agent [-a bind_address] [-E fingerprint_hash] [-P provider_whitelist]\n" + " [-t life] command [arg ...]\n" " ssh-agent [-c | -s] -k\n"); exit(1); } -- cgit v1.2.3 From fc270baf264248c3ee3050b13a6c8c0919e6559f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 05:52:05 +0000 Subject: upstream: better terminology for permissions; feedback & ok markus@ OpenBSD-Commit-ID: ffb220b435610741dcb4de0e7fc68cbbdc876d2c --- sftp-server.c | 32 ++++++++++++++++---------------- ssh-agent.1 | 18 +++++++++--------- ssh-agent.c | 24 ++++++++++++------------ 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/sftp-server.c b/sftp-server.c index 359204fa7..b1d8c88cb 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server.c,v 1.117 2019/07/05 04:55:40 djm Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.118 2020/06/22 05:52:05 djm Exp $ */ /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -74,7 +74,7 @@ static int init_done; static int readonly; /* Requests that are allowed/denied */ -static char *request_whitelist, *request_blacklist; +static char *request_allowlist, *request_denylist; /* portable attributes, etc. */ typedef struct Stat Stat; @@ -164,20 +164,20 @@ request_permitted(const struct sftp_handler *h) verbose("Refusing %s request in read-only mode", h->name); return 0; } - if (request_blacklist != NULL && - ((result = match_list(h->name, request_blacklist, NULL))) != NULL) { + if (request_denylist != NULL && + ((result = match_list(h->name, request_denylist, NULL))) != NULL) { free(result); - verbose("Refusing blacklisted %s request", h->name); + verbose("Refusing denylisted %s request", h->name); return 0; } - if (request_whitelist != NULL && - ((result = match_list(h->name, request_whitelist, NULL))) != NULL) { + if (request_allowlist != NULL && + ((result = match_list(h->name, request_allowlist, NULL))) != NULL) { free(result); - debug2("Permitting whitelisted %s request", h->name); + debug2("Permitting allowlisted %s request", h->name); return 1; } - if (request_whitelist != NULL) { - verbose("Refusing non-whitelisted %s request", h->name); + if (request_allowlist != NULL) { + verbose("Refusing non-allowlisted %s request", h->name); return 0; } return 1; @@ -1556,8 +1556,8 @@ sftp_server_usage(void) fprintf(stderr, "usage: %s [-ehR] [-d start_directory] [-f log_facility] " - "[-l log_level]\n\t[-P blacklisted_requests] " - "[-p whitelisted_requests] [-u umask]\n" + "[-l log_level]\n\t[-P denied_requests] " + "[-p allowed_requests] [-u umask]\n" " %s -Q protocol_feature\n", __progname, __progname); exit(1); @@ -1627,14 +1627,14 @@ sftp_server_main(int argc, char **argv, struct passwd *user_pw) free(cp); break; case 'p': - if (request_whitelist != NULL) + if (request_allowlist != NULL) fatal("Permitted requests already set"); - request_whitelist = xstrdup(optarg); + request_allowlist = xstrdup(optarg); break; case 'P': - if (request_blacklist != NULL) + if (request_denylist != NULL) fatal("Refused requests already set"); - request_blacklist = xstrdup(optarg); + request_denylist = xstrdup(optarg); break; case 'u': errno = 0; diff --git a/ssh-agent.1 b/ssh-agent.1 index 8e9295e9d..2cf46160b 100644 --- a/ssh-agent.1 +++ b/ssh-agent.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-agent.1,v 1.71 2020/06/19 07:21:42 dtucker Exp $ +.\" $OpenBSD: ssh-agent.1,v 1.72 2020/06/22 05:52:05 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -34,7 +34,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 19 2020 $ +.Dd $Mdocdate: June 22 2020 $ .Dt SSH-AGENT 1 .Os .Sh NAME @@ -46,12 +46,12 @@ .Op Fl \&Dd .Op Fl a Ar bind_address .Op Fl E Ar fingerprint_hash -.Op Fl P Ar provider_whitelist +.Op Fl P Ar allowed_providers .Op Fl t Ar life .Nm ssh-agent .Op Fl a Ar bind_address .Op Fl E Ar fingerprint_hash -.Op Fl P Ar provider_whitelist +.Op Fl P Ar allowed_providers .Op Fl t Ar life .Ar command Op Ar arg ... .Nm ssh-agent @@ -102,19 +102,19 @@ The default is Kill the current agent (given by the .Ev SSH_AGENT_PID environment variable). -.It Fl P Ar provider_whitelist -Specify a pattern-list of acceptable paths for PKCS#11 and FIDO authenticator -shared libraries that may be used with the +.It Fl P Ar allowed_providers +Specify a pattern-list of acceptable paths for PKCS#11 provider and FIDO +authenticator middleware shared libraries that may be used with the .Fl S or .Fl s options to .Xr ssh-add 1 . -Libraries that do not match the whitelist will be refused. +Libraries that do not match the pattern list will be refused. See PATTERNS in .Xr ssh_config 5 for a description of pattern-list syntax. -The default whitelist is +The default list is .Dq /usr/lib/*,/usr/local/lib/* . .It Fl s Generate Bourne shell commands on diff --git a/ssh-agent.c b/ssh-agent.c index 596c39582..d2f00e5ba 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.259 2020/06/19 07:21:42 dtucker Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.260 2020/06/22 05:52:05 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -150,8 +150,8 @@ pid_t cleanup_pid = 0; char socket_name[PATH_MAX]; char socket_dir[PATH_MAX]; -/* PKCS#11/Security key path whitelist */ -static char *provider_whitelist; +/* Pattern-list of allowed PKCS#11/Security key paths */ +static char *allowed_providers; /* locking */ #define LOCK_SIZE 32 @@ -612,9 +612,9 @@ process_add_identity(SocketEntry *e) free(sk_provider); sk_provider = xstrdup(canonical_provider); if (match_pattern_list(sk_provider, - provider_whitelist, 0) != 1) { + allowed_providers, 0) != 1) { error("Refusing add key: " - "provider %s not whitelisted", sk_provider); + "provider %s not allowed", sk_provider); free(sk_provider); goto send; } @@ -769,9 +769,9 @@ process_add_smartcard_key(SocketEntry *e) provider, strerror(errno)); goto send; } - if (match_pattern_list(canonical_provider, provider_whitelist, 0) != 1) { + if (match_pattern_list(canonical_provider, allowed_providers, 0) != 1) { verbose("refusing PKCS#11 add of \"%.100s\": " - "provider not whitelisted", canonical_provider); + "provider not allowed", canonical_provider); goto send; } debug("%s: add %.100s", __func__, canonical_provider); @@ -1255,7 +1255,7 @@ usage(void) fprintf(stderr, "usage: ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash]\n" " [-P provider_whitelist] [-t life]\n" - " ssh-agent [-a bind_address] [-E fingerprint_hash] [-P provider_whitelist]\n" + " ssh-agent [-a bind_address] [-E fingerprint_hash] [-P allowed_providers]\n" " [-t life] command [arg ...]\n" " ssh-agent [-c | -s] -k\n"); exit(1); @@ -1320,9 +1320,9 @@ main(int ac, char **av) fatal("Unknown -O option"); break; case 'P': - if (provider_whitelist != NULL) + if (allowed_providers != NULL) fatal("-P option already specified"); - provider_whitelist = xstrdup(optarg); + allowed_providers = xstrdup(optarg); break; case 's': if (c_flag) @@ -1358,8 +1358,8 @@ main(int ac, char **av) if (ac > 0 && (c_flag || k_flag || s_flag || d_flag || D_flag)) usage(); - if (provider_whitelist == NULL) - provider_whitelist = xstrdup(DEFAULT_PROVIDER_WHITELIST); + if (allowed_providers == NULL) + allowed_providers = xstrdup(DEFAULT_PROVIDER_WHITELIST); if (ac == 0 && !c_flag && !s_flag) { shell = getenv("SHELL"); -- cgit v1.2.3 From 473b4af43db12127137c7fc1a10928313f5a16d2 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 05:53:26 +0000 Subject: upstream: better terminology for permissions; feedback & ok markus@ OpenBSD-Commit-ID: ff2a71803b5ea57b83cc3fa9b3be42b70e462fb9 --- sftp-server.8 | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/sftp-server.8 b/sftp-server.8 index 4a55dab26..823a99f28 100644 --- a/sftp-server.8 +++ b/sftp-server.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp-server.8,v 1.28 2019/11/30 07:07:59 jmc Exp $ +.\" $OpenBSD: sftp-server.8,v 1.29 2020/06/22 05:53:26 djm Exp $ .\" .\" Copyright (c) 2000 Markus Friedl. All rights reserved. .\" @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: November 30 2019 $ +.Dd $Mdocdate: June 22 2020 $ .Dt SFTP-SERVER 8 .Os .Sh NAME @@ -35,8 +35,8 @@ .Op Fl d Ar start_directory .Op Fl f Ar log_facility .Op Fl l Ar log_level -.Op Fl P Ar blacklisted_requests -.Op Fl p Ar whitelisted_requests +.Op Fl P Ar denied_requests +.Op Fl p Ar allowed_requests .Op Fl u Ar umask .Ek .Nm @@ -99,20 +99,20 @@ performs on behalf of the client. DEBUG and DEBUG1 are equivalent. DEBUG2 and DEBUG3 each specify higher levels of debugging output. The default is ERROR. -.It Fl P Ar blacklisted_requests +.It Fl P Ar denied_requests Specify a comma-separated list of SFTP protocol requests that are banned by the server. .Nm -will reply to any blacklisted request with a failure. +will reply to any denied request with a failure. The .Fl Q flag can be used to determine the supported request types. -If both a blacklist and a whitelist are specified, then the blacklist is -applied before the whitelist. -.It Fl p Ar whitelisted_requests +If both denied and allowed lists are specified, then the denied list is +applied before the allowed list. +.It Fl p Ar allowed_requests Specify a comma-separated list of SFTP protocol requests that are permitted by the server. -All request types that are not on the whitelist will be logged and replied +All request types that are not on the allowed will be logged and replied to with a failure message. .Pp Care must be taken when using this feature to ensure that requests made @@ -122,7 +122,7 @@ Query protocol features supported by .Nm . At present the only feature that may be queried is .Dq requests , -which may be used for black or whitelisting (flags +which may be used to deny or allow specific requests (flags .Fl P and .Fl p -- cgit v1.2.3 From 12848191f8fe725af4485d3600e0842d92f8637f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 05:54:10 +0000 Subject: upstream: support for RFC4648 base64url encoding; ok markus OpenBSD-Commit-ID: 0ef22c55e772dda05c112c88412c0797fec66eb4 --- sshbuf-misc.c | 45 ++++++++++++++++++++++++++++++++++++++++++++- sshbuf.h | 4 +++- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/sshbuf-misc.c b/sshbuf-misc.c index 86e5fa34f..afaab8d61 100644 --- a/sshbuf-misc.c +++ b/sshbuf-misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf-misc.c,v 1.15 2020/06/05 03:24:36 djm Exp $ */ +/* $OpenBSD: sshbuf-misc.c,v 1.16 2020/06/22 05:54:10 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -167,6 +167,49 @@ sshbuf_b64tod(struct sshbuf *buf, const char *b64) return 0; } +int +sshbuf_dtourlb64(const struct sshbuf *d, struct sshbuf *b64, int wrap) +{ + int r = SSH_ERR_INTERNAL_ERROR; + u_char *p; + struct sshbuf *b = NULL; + size_t i, l; + + if ((b = sshbuf_new()) == NULL) + return SSH_ERR_ALLOC_FAIL; + /* Encode using regular base64; we'll transform it once done */ + if ((r = sshbuf_dtob64(d, b, wrap)) != 0) + goto out; + /* remove padding from end of encoded string*/ + for (;;) { + l = sshbuf_len(b); + if (l <= 1 || sshbuf_ptr(b) == NULL) { + r = SSH_ERR_INTERNAL_ERROR; + goto out; + } + if (sshbuf_ptr(b)[l - 1] != '=') + break; + if ((r = sshbuf_consume_end(b, 1)) != 0) + goto out; + } + /* Replace characters with rfc4648 equivalents */ + l = sshbuf_len(b); + if ((p = sshbuf_mutable_ptr(b)) == NULL) { + r = SSH_ERR_INTERNAL_ERROR; + goto out; + } + for (i = 0; i < l; i++) { + if (p[i] == '+') + p[i] = '-'; + else if (p[i] == '/') + p[i] = '_'; + } + r = sshbuf_putb(b64, b); + out: + sshbuf_free(b); + return r; +} + char * sshbuf_dup_string(struct sshbuf *buf) { diff --git a/sshbuf.h b/sshbuf.h index ec7514eb3..2ad0e61be 100644 --- a/sshbuf.h +++ b/sshbuf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshbuf.h,v 1.22 2020/06/05 03:24:36 djm Exp $ */ +/* $OpenBSD: sshbuf.h,v 1.23 2020/06/22 05:54:10 djm Exp $ */ /* * Copyright (c) 2011 Damien Miller * @@ -253,6 +253,8 @@ char *sshbuf_dtob16(struct sshbuf *buf); /* Encode the contents of the buffer as base64 */ char *sshbuf_dtob64_string(const struct sshbuf *buf, int wrap); int sshbuf_dtob64(const struct sshbuf *d, struct sshbuf *b64, int wrap); +/* RFC4648 "base64url" encoding variant */ +int sshbuf_dtourlb64(const struct sshbuf *d, struct sshbuf *b64, int wrap); /* Decode base64 data and append it to the buffer */ int sshbuf_b64tod(struct sshbuf *buf, const char *b64); -- cgit v1.2.3 From 64bc121097f377142f1387ffb2df7592c49935af Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 05:56:23 +0000 Subject: upstream: refactor ECDSA-SK verification a little ahead of adding support for FIDO webauthn signature verification support; ok markus@ OpenBSD-Commit-ID: c9f478fd8e0c1bd17e511ce8694f010d8e32043e --- ssh-ecdsa-sk.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/ssh-ecdsa-sk.c b/ssh-ecdsa-sk.c index 981d60d74..dcf605ba1 100644 --- a/ssh-ecdsa-sk.c +++ b/ssh-ecdsa-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa-sk.c,v 1.5 2019/11/26 03:04:27 djm Exp $ */ +/* $OpenBSD: ssh-ecdsa-sk.c,v 1.6 2020/06/22 05:56:23 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -83,15 +83,22 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, /* fetch signature */ if ((b = sshbuf_from(signature, signaturelen)) == NULL) return SSH_ERR_ALLOC_FAIL; - if (sshbuf_get_cstring(b, &ktype, NULL) != 0 || - sshbuf_froms(b, &sigbuf) != 0 || - sshbuf_get_u8(b, &sig_flags) != 0 || - sshbuf_get_u32(b, &sig_counter) != 0) { + if ((details = calloc(1, sizeof(*details))) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; + goto out; + } + if (sshbuf_get_cstring(b, &ktype, NULL) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + if (strcmp(ktype, "sk-ecdsa-sha2-nistp256@openssh.com") != 0) { ret = SSH_ERR_INVALID_FORMAT; goto out; } - if (strcmp(sshkey_ssh_name_plain(key), ktype) != 0) { - ret = SSH_ERR_KEY_TYPE_MISMATCH; + if (sshbuf_froms(b, &sigbuf) != 0 || + sshbuf_get_u8(b, &sig_flags) != 0 || + sshbuf_get_u32(b, &sig_counter) != 0) { + ret = SSH_ERR_INVALID_FORMAT; goto out; } if (sshbuf_len(b) != 0) { @@ -105,12 +112,8 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, ret = SSH_ERR_INVALID_FORMAT; goto out; } - if ((sig = ECDSA_SIG_new()) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } - if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { - ret = SSH_ERR_LIBCRYPTO_ERROR; + if (sshbuf_len(sigbuf) != 0) { + ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; goto out; } #ifdef DEBUG_SK @@ -123,12 +126,15 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, fprintf(stderr, "%s: sig_flags = 0x%02x, sig_counter = %u\n", __func__, sig_flags, sig_counter); #endif - sig_r = sig_s = NULL; /* transferred */ - - if (sshbuf_len(sigbuf) != 0) { - ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; + if ((sig = ECDSA_SIG_new()) == NULL) { + ret = SSH_ERR_ALLOC_FAIL; goto out; } + if (!ECDSA_SIG_set0(sig, sig_r, sig_s)) { + ret = SSH_ERR_LIBCRYPTO_ERROR; + goto out; + } + sig_r = sig_s = NULL; /* transferred */ /* Reconstruct data that was supposedly signed */ if ((original_signed = sshbuf_new()) == NULL) { @@ -158,10 +164,6 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, if ((ret = ssh_digest_buffer(SSH_DIGEST_SHA256, original_signed, sighash, sizeof(sighash))) != 0) goto out; - if ((details = calloc(1, sizeof(*details))) == NULL) { - ret = SSH_ERR_ALLOC_FAIL; - goto out; - } details->sk_counter = sig_counter; details->sk_flags = sig_flags; #ifdef DEBUG_SK -- cgit v1.2.3 From bb52e70fa5330070ec9a23069c311d9e277bbd6f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 05:58:35 +0000 Subject: upstream: Add support for FIDO webauthn (verification only). webauthn is a standard for using FIDO keys in web browsers. webauthn signatures are a slightly different format to plain FIDO signatures - this support allows verification of these. Feedback and ok markus@ OpenBSD-Commit-ID: ab7e3a9fb5782d99d574f408614d833379e564ad --- PROTOCOL.u2f | 26 ++++++++++++ ssh-ecdsa-sk.c | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- sshkey.c | 4 +- 3 files changed, 144 insertions(+), 10 deletions(-) diff --git a/PROTOCOL.u2f b/PROTOCOL.u2f index 69347e999..fd31ea4ef 100644 --- a/PROTOCOL.u2f +++ b/PROTOCOL.u2f @@ -209,6 +209,32 @@ For Ed25519 keys the signature is encoded as: byte flags uint32 counter +webauthn signatures +------------------- + +The W3C/FIDO webauthn[1] standard defines a mechanism for a web browser to +interact with FIDO authentication tokens. This standard builds upon the +FIDO standards, but requires different signature contents to raw FIDO +messages. OpenSSH supports ECDSA/p256 webauthn signatures through the +"webauthn-sk-ecdsa-sha2-nistp256@openssh.com" signature algorithm. + +The wire encoding for a webauthn-sk-ecdsa-sha2-nistp256@openssh.com +signature is similar to the sk-ecdsa-sha2-nistp256@openssh.com format: + + string "webauthn-sk-ecdsa-sha2-nistp256@openssh.com" + string ecdsa_signature + byte flags + uint32 counter + string origin + string clientData + string extensions + +Where "origin" is the HTTP origin making the signature, "clientData" is +the JSON-like structure signed by the browser and "extensions" are any +extensions used in making the signature. + +[1] https://www.w3.org/TR/webauthn-2/ + ssh-agent protocol extensions ----------------------------- diff --git a/ssh-ecdsa-sk.c b/ssh-ecdsa-sk.c index dcf605ba1..0004a73ca 100644 --- a/ssh-ecdsa-sk.c +++ b/ssh-ecdsa-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa-sk.c,v 1.6 2020/06/22 05:56:23 djm Exp $ */ +/* $OpenBSD: ssh-ecdsa-sk.c,v 1.7 2020/06/22 05:58:35 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -49,6 +49,87 @@ #define SSHKEY_INTERNAL #include "sshkey.h" +#ifndef OPENSSL_HAS_ECC +/* ARGSUSED */ +int +ssh_ecdsa_sk_verify(const struct sshkey *key, + const u_char *signature, size_t signaturelen, + const u_char *data, size_t datalen, u_int compat, + struct sshkey_sig_details **detailsp) +{ + return SSH_ERR_FEATURE_UNSUPPORTED; +} +#else /* OPENSSL_HAS_ECC */ + +/* + * Check FIDO/W3C webauthn signatures clientData field against the expected + * format and prepare a hash of it for use in signature verification. + * + * webauthn signatures do not sign the hash of the message directly, but + * instead sign a JSON-like "clientData" wrapper structure that contains the + * message hash along with a other information. + * + * Fortunately this structure has a fixed format so it is possible to verify + * that the hash of the signed message is present within the clientData + * structure without needing to implement any JSON parsing. + */ +static int +webauthn_check_prepare_hash(const u_char *data, size_t datalen, + const char *origin, const struct sshbuf *wrapper, + uint8_t flags, const struct sshbuf *extensions, + u_char *msghash, size_t msghashlen) +{ + int r = SSH_ERR_INTERNAL_ERROR; + struct sshbuf *chall = NULL, *m = NULL; + + if ((m = sshbuf_new()) == NULL || + (chall = sshbuf_from(data, datalen)) == NULL) { + r = SSH_ERR_ALLOC_FAIL; + goto out; + } + /* + * Ensure origin contains no quote character and that the flags are + * consistent with what we received + */ + if (strchr(origin, '\"') != NULL || + (flags & 0x40) != 0 /* AD */ || + ((flags & 0x80) == 0 /* ED */) != (sshbuf_len(extensions) == 0)) { + r = SSH_ERR_INVALID_FORMAT; + goto out; + } +#define WEBAUTHN_0 "{\"type\":\"webauthn.get\",\"challenge\":\"" +#define WEBAUTHN_1 "\",\"origin\":\"" +#define WEBAUTHN_2 "\"" + if ((r = sshbuf_put(m, WEBAUTHN_0, sizeof(WEBAUTHN_0) - 1)) != 0 || + (r = sshbuf_dtourlb64(chall, m, 0)) != 0 || + (r = sshbuf_put(m, WEBAUTHN_1, sizeof(WEBAUTHN_1) - 1)) != 0 || + (r = sshbuf_put(m, origin, strlen(origin))) != 0 || + (r = sshbuf_put(m, WEBAUTHN_2, sizeof(WEBAUTHN_2) - 1)) != 0) + goto out; +#ifdef DEBUG_SK + fprintf(stderr, "%s: received origin: %s\n", __func__, origin); + fprintf(stderr, "%s: received clientData:\n", __func__); + sshbuf_dump(wrapper, stderr); + fprintf(stderr, "%s: expected clientData premable:\n", __func__); + sshbuf_dump(m, stderr); +#endif + /* Check that the supplied clientData matches what we expect */ + if ((r = sshbuf_cmp(wrapper, 0, sshbuf_ptr(m), sshbuf_len(m))) != 0) + goto out; + + /* Prepare hash of clientData */ + if ((r = ssh_digest_buffer(SSH_DIGEST_SHA256, wrapper, + msghash, msghashlen)) != 0) + goto out; + + /* success */ + r = 0; + out: + sshbuf_free(chall); + sshbuf_free(m); + return r; +} + /* ARGSUSED */ int ssh_ecdsa_sk_verify(const struct sshkey *key, @@ -56,15 +137,15 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, const u_char *data, size_t datalen, u_int compat, struct sshkey_sig_details **detailsp) { -#ifdef OPENSSL_HAS_ECC ECDSA_SIG *sig = NULL; BIGNUM *sig_r = NULL, *sig_s = NULL; u_char sig_flags; u_char msghash[32], apphash[32], sighash[32]; u_int sig_counter; - int ret = SSH_ERR_INTERNAL_ERROR; + int is_webauthn = 0, ret = SSH_ERR_INTERNAL_ERROR; struct sshbuf *b = NULL, *sigbuf = NULL, *original_signed = NULL; - char *ktype = NULL; + struct sshbuf *webauthn_wrapper = NULL, *webauthn_exts = NULL; + char *ktype = NULL, *webauthn_origin = NULL; struct sshkey_sig_details *details = NULL; #ifdef DEBUG_SK char *tmp = NULL; @@ -91,7 +172,9 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, ret = SSH_ERR_INVALID_FORMAT; goto out; } - if (strcmp(ktype, "sk-ecdsa-sha2-nistp256@openssh.com") != 0) { + if (strcmp(ktype, "webauthn-sk-ecdsa-sha2-nistp256@openssh.com") == 0) + is_webauthn = 1; + else if (strcmp(ktype, "sk-ecdsa-sha2-nistp256@openssh.com") != 0) { ret = SSH_ERR_INVALID_FORMAT; goto out; } @@ -101,6 +184,14 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, ret = SSH_ERR_INVALID_FORMAT; goto out; } + if (is_webauthn) { + if (sshbuf_get_cstring(b, &webauthn_origin, NULL) != 0 || + sshbuf_froms(b, &webauthn_wrapper) != 0 || + sshbuf_froms(b, &webauthn_exts) != 0) { + ret = SSH_ERR_INVALID_FORMAT; + goto out; + } + } if (sshbuf_len(b) != 0) { ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; goto out; @@ -116,6 +207,7 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, ret = SSH_ERR_UNEXPECTED_TRAILING_DATA; goto out; } + #ifdef DEBUG_SK fprintf(stderr, "%s: data: (len %zu)\n", __func__, datalen); /* sshbuf_dump_data(data, datalen, stderr); */ @@ -125,6 +217,12 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, free(tmp); fprintf(stderr, "%s: sig_flags = 0x%02x, sig_counter = %u\n", __func__, sig_flags, sig_counter); + if (is_webauthn) { + fprintf(stderr, "%s: webauthn origin: %s\n", __func__, + webauthn_origin); + fprintf(stderr, "%s: webauthn_wrapper:\n", __func__); + sshbuf_dump(webauthn_wrapper, stderr); + } #endif if ((sig = ECDSA_SIG_new()) == NULL) { ret = SSH_ERR_ALLOC_FAIL; @@ -141,7 +239,12 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, ret = SSH_ERR_ALLOC_FAIL; goto out; } - if ((ret = ssh_digest_memory(SSH_DIGEST_SHA256, data, datalen, + if (is_webauthn) { + if ((ret = webauthn_check_prepare_hash(data, datalen, + webauthn_origin, webauthn_wrapper, sig_flags, webauthn_exts, + msghash, sizeof(msghash))) != 0) + goto out; + } else if ((ret = ssh_digest_memory(SSH_DIGEST_SHA256, data, datalen, msghash, sizeof(msghash))) != 0) goto out; /* Application value is hashed before signature */ @@ -158,6 +261,7 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, apphash, sizeof(apphash))) != 0 || (ret = sshbuf_put_u8(original_signed, sig_flags)) != 0 || (ret = sshbuf_put_u32(original_signed, sig_counter)) != 0 || + (ret = sshbuf_putb(original_signed, webauthn_exts)) != 0 || (ret = sshbuf_put(original_signed, msghash, sizeof(msghash))) != 0) goto out; /* Signature is over H(original_signed) */ @@ -197,6 +301,9 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, explicit_bzero(sighash, sizeof(msghash)); explicit_bzero(apphash, sizeof(apphash)); sshkey_sig_details_free(details); + sshbuf_free(webauthn_wrapper); + sshbuf_free(webauthn_exts); + free(webauthn_origin); sshbuf_free(original_signed); sshbuf_free(sigbuf); sshbuf_free(b); @@ -205,7 +312,6 @@ ssh_ecdsa_sk_verify(const struct sshkey *key, BN_clear_free(sig_s); free(ktype); return ret; -#else - return SSH_ERR_INTERNAL_ERROR; -#endif } + +#endif /* OPENSSL_HAS_ECC */ diff --git a/sshkey.c b/sshkey.c index 1571e3d93..5497497cd 100644 --- a/sshkey.c +++ b/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.108 2020/04/11 10:16:11 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.109 2020/06/22 05:58:35 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -132,6 +132,8 @@ static const struct keytype keytypes[] = { # endif /* OPENSSL_HAS_NISTP521 */ { "sk-ecdsa-sha2-nistp256@openssh.com", "ECDSA-SK", NULL, KEY_ECDSA_SK, NID_X9_62_prime256v1, 0, 0 }, + { "webauthn-sk-ecdsa-sha2-nistp256@openssh.com", "ECDSA-SK", NULL, + KEY_ECDSA_SK, NID_X9_62_prime256v1, 0, 1 }, # endif /* OPENSSL_HAS_ECC */ { "ssh-rsa-cert-v01@openssh.com", "RSA-CERT", NULL, KEY_RSA_CERT, 0, 1, 0 }, -- cgit v1.2.3 From 354535ff79380237924ac8fdc98f8cdf83e67da6 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 06:00:06 +0000 Subject: upstream: add support for verification of webauthn sshsig signature, and example HTML/JS to generate webauthn signatures in SSH formats (also used to generate the testdata/* for the test). OpenBSD-Regress-ID: dc575be5bb1796fdf4b8aaee0ef52a6671a0f6fb --- regress/unittests/sshsig/tests.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index a131795cd..d82d4897a 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.1 2020/06/19 04:32:09 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.2 2020/06/22 06:00:06 djm Exp $ */ /* * Regress test for sshbuf.h buffer API * @@ -97,34 +97,39 @@ tests(void) #ifdef WITH_OPENSSL TEST_START("check RSA signature"); - check_sig("rsa", "rsa.sig", msg, namespace); + check_sig("rsa.pub", "rsa.sig", msg, namespace); TEST_DONE(); TEST_START("check DSA signature"); - check_sig("dsa", "dsa.sig", msg, namespace); + check_sig("dsa.pub", "dsa.sig", msg, namespace); TEST_DONE(); #ifdef OPENSSL_HAS_ECC TEST_START("check ECDSA signature"); - check_sig("ecdsa", "ecdsa.sig", msg, namespace); + check_sig("ecdsa.pub", "ecdsa.sig", msg, namespace); TEST_DONE(); #endif #endif TEST_START("check ED25519 signature"); - check_sig("ed25519", "ed25519.sig", msg, namespace); + check_sig("ed25519.pub", "ed25519.sig", msg, namespace); TEST_DONE(); #if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("check ECDSA-SK signature"); - check_sig("ecdsa_sk", "ecdsa_sk.sig", msg, namespace); + check_sig("ecdsa_sk.pub", "ecdsa_sk.sig", msg, namespace); TEST_DONE(); #endif TEST_START("check ED25519-SK signature"); - check_sig("ed25519_sk", "ed25519_sk.sig", msg, namespace); + check_sig("ed25519_sk.pub", "ed25519_sk.sig", msg, namespace); TEST_DONE(); + TEST_START("check ECDSA-SK webauthn signature"); + check_sig("ecdsa_sk_webauthn.pub", "ecdsa_sk_webauthn.sig", + msg, namespace); + TEST_DONE(); + sshbuf_free(msg); free(namespace); } -- cgit v1.2.3 From 5098b3b6230852a80ac6cef5d53a785c789a5a56 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 22 Jun 2020 16:54:02 +1000 Subject: missing files for webauthn/sshsig unit test --- .../sshsig/testdata/ecdsa_sk_webauthn.pub | 1 + .../sshsig/testdata/ecdsa_sk_webauthn.sig | 13 + regress/unittests/sshsig/webauthn.html | 692 +++++++++++++++++++++ 3 files changed, 706 insertions(+) create mode 100644 regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.pub create mode 100644 regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.sig create mode 100644 regress/unittests/sshsig/webauthn.html diff --git a/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.pub b/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.pub new file mode 100644 index 000000000..1597302ce --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.pub @@ -0,0 +1 @@ +sk-ecdsa-sha2-nistp256@openssh.com AAAAInNrLWVjZHNhLXNoYTItbmlzdHAyNTZAb3BlbnNzaC5jb20AAAAIbmlzdHAyNTYAAABBBBRGwDjs4HhJFcn4tJ5Gr72KcmRmCS1OirETxaXvnsNApgoOLF1a/7rxldfSMHm73eT1nhHe97W8qicPPEAKDJQAAAALbWluZHJvdC5vcmc= diff --git a/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.sig b/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.sig new file mode 100644 index 000000000..4bdd8edc6 --- /dev/null +++ b/regress/unittests/sshsig/testdata/ecdsa_sk_webauthn.sig @@ -0,0 +1,13 @@ +-----BEGIN SSH SIGNATURE----- +U1NIU0lHAAAAAQAAAIYAAAAic2stZWNkc2Etc2hhMi1uaXN0cDI1NkBvcGVuc3NoLmNvbQ +AAAAhuaXN0cDI1NgAAAEEEFEbAOOzgeEkVyfi0nkavvYpyZGYJLU6KsRPFpe+ew0CmCg4s +XVr/uvGV19Iwebvd5PWeEd73tbyqJw88QAoMlAAAAAttaW5kcm90Lm9yZwAAAAh1bml0dG +VzdAAAAAAAAAAGc2hhNTEyAAABhwAAACt3ZWJhdXRobi1zay1lY2RzYS1zaGEyLW5pc3Rw +MjU2QG9wZW5zc2guY29tAAAASQAAACBj2oMT9tb5wRXe6mdmf4/lgAO8wrgr95ouozwNg4 +itnQAAACEAtU9g5wz3HchUiLfLD6plr9T4TiJ32lVCrATSjpiy0SMBAAADHwAAABdodHRw +czovL3d3dy5taW5kcm90Lm9yZwAAAON7InR5cGUiOiJ3ZWJhdXRobi5nZXQiLCJjaGFsbG +VuZ2UiOiJVMU5JVTBsSEFBQUFDSFZ1YVhSMFpYTjBBQUFBQUFBQUFBWnphR0UxTVRJQUFB +QkFMTHU4WmdjU3h0Nk1zRlV6dWlaZ0c2R3dNZEo5ZDd4ZUU3WW9SSXcwZzlpSEpfd3NGRD +cxbzRXbHllenZGV0VqYnFRMHFDN0Z3R3Bqa2pVUVAtTmQ2dyIsIm9yaWdpbiI6Imh0dHBz +Oi8vd3d3Lm1pbmRyb3Qub3JnIiwiY3Jvc3NPcmlnaW4iOmZhbHNlfQAAAAA= +-----END SSH SIGNATURE----- diff --git a/regress/unittests/sshsig/webauthn.html b/regress/unittests/sshsig/webauthn.html new file mode 100644 index 000000000..953041e61 --- /dev/null +++ b/regress/unittests/sshsig/webauthn.html @@ -0,0 +1,692 @@ + + + +webauthn test + + +

webauthn test

+

+This is a demo/test page for generating FIDO keys and signatures in SSH +formats. The page initially displays a form to generate a FIDO key and +convert it to a SSH public key. +

+

+Once a key has been generated, an additional form will be displayed to +allow signing of data using the just-generated key. The data may be signed +as either a raw SSH signature or wrapped in a sshsig message (the latter is +easier to test using command-line tools. +

+

+Lots of debugging is printed along the way. +

+

Enroll

+ +
+ + + + + + +
Username:
+
+ + + + + + + -- cgit v1.2.3 From 02a9222cbce7131d639984c2f6c71d1551fc3333 Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Mon, 22 Jun 2020 06:36:40 +0000 Subject: upstream: supply word missing in previous; OpenBSD-Commit-ID: 16a38b049f216108f66c8b699aa046063381bd23 --- sftp-server.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sftp-server.8 b/sftp-server.8 index 823a99f28..f057da3b8 100644 --- a/sftp-server.8 +++ b/sftp-server.8 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp-server.8,v 1.29 2020/06/22 05:53:26 djm Exp $ +.\" $OpenBSD: sftp-server.8,v 1.30 2020/06/22 06:36:40 jmc Exp $ .\" .\" Copyright (c) 2000 Markus Friedl. All rights reserved. .\" @@ -112,7 +112,7 @@ applied before the allowed list. .It Fl p Ar allowed_requests Specify a comma-separated list of SFTP protocol requests that are permitted by the server. -All request types that are not on the allowed will be logged and replied +All request types that are not on the allowed list will be logged and replied to with a failure message. .Pp Care must be taken when using this feature to ensure that requests made -- cgit v1.2.3 From b659319a5bc9e8adf3c4facc51f37b670d2a7426 Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Mon, 22 Jun 2020 06:37:38 +0000 Subject: upstream: updated argument name for -P in first synopsis was missed in previous; OpenBSD-Commit-ID: 8d84dc3050469884ea91e29ee06a371713f2d0b7 --- ssh-agent.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ssh-agent.c b/ssh-agent.c index d2f00e5ba..06efe3c6f 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.260 2020/06/22 05:52:05 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.261 2020/06/22 06:37:38 jmc Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1254,7 +1254,7 @@ usage(void) { fprintf(stderr, "usage: ssh-agent [-c | -s] [-Dd] [-a bind_address] [-E fingerprint_hash]\n" - " [-P provider_whitelist] [-t life]\n" + " [-P allowed_providers] [-t life]\n" " ssh-agent [-a bind_address] [-E fingerprint_hash] [-P allowed_providers]\n" " [-t life] command [arg ...]\n" " ssh-agent [-c | -s] -k\n"); -- cgit v1.2.3 From 37f2da069c0619f2947fb92785051d82882876d7 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 22 Jun 2020 23:44:27 +0000 Subject: upstream: some clarifying comments OpenBSD-Commit-ID: 5268479000fd97bfa30ab819f3517139daa054a2 --- ssh-ecdsa-sk.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ssh-ecdsa-sk.c b/ssh-ecdsa-sk.c index 0004a73ca..c6927ecb2 100644 --- a/ssh-ecdsa-sk.c +++ b/ssh-ecdsa-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-ecdsa-sk.c,v 1.7 2020/06/22 05:58:35 djm Exp $ */ +/* $OpenBSD: ssh-ecdsa-sk.c,v 1.8 2020/06/22 23:44:27 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2010 Damien Miller. All rights reserved. @@ -97,6 +97,13 @@ webauthn_check_prepare_hash(const u_char *data, size_t datalen, r = SSH_ERR_INVALID_FORMAT; goto out; } + + /* + * Prepare the preamble to clientData that we expect, poking the + * challenge and origin into their canonical positions in the + * structure. The crossOrigin flag and any additional extension + * fields present are ignored. + */ #define WEBAUTHN_0 "{\"type\":\"webauthn.get\",\"challenge\":\"" #define WEBAUTHN_1 "\",\"origin\":\"" #define WEBAUTHN_2 "\"" @@ -113,7 +120,7 @@ webauthn_check_prepare_hash(const u_char *data, size_t datalen, fprintf(stderr, "%s: expected clientData premable:\n", __func__); sshbuf_dump(m, stderr); #endif - /* Check that the supplied clientData matches what we expect */ + /* Check that the supplied clientData has the preamble we expect */ if ((r = sshbuf_cmp(wrapper, 0, sshbuf_ptr(m), sshbuf_len(m))) != 0) goto out; -- cgit v1.2.3 From e3fa6249e6d9ceb57c14b04dd4c0cfab12fa7cd5 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:07:33 +0000 Subject: upstream: only call sshkey_xmss_init() once for KEY_XMSS_CERT; ok djm OpenBSD-Commit-ID: d0002ffb7f20f538b014d1d0735facd5a81ff096 --- sshkey.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sshkey.c b/sshkey.c index 5497497cd..10b9e4676 100644 --- a/sshkey.c +++ b/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.109 2020/06/22 05:58:35 djm Exp $ */ +/* $OpenBSD: sshkey.c,v 1.110 2020/06/24 15:07:33 markus Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -3600,10 +3600,12 @@ sshkey_private_deserialize(struct sshbuf *buf, struct sshkey **kp) case KEY_XMSS: case KEY_XMSS_CERT: if ((r = sshbuf_get_cstring(buf, &xmss_name, NULL)) != 0 || - (r = sshkey_xmss_init(k, xmss_name)) != 0 || (r = sshbuf_get_string(buf, &xmss_pk, &pklen)) != 0 || (r = sshbuf_get_string(buf, &xmss_sk, &sklen)) != 0) goto out; + if (type == KEY_XMSS && + (r = sshkey_xmss_init(k, xmss_name)) != 0) + goto out; if (pklen != sshkey_xmss_pklen(k) || sklen != sshkey_xmss_sklen(k)) { r = SSH_ERR_INVALID_FORMAT; -- cgit v1.2.3 From 89b54900ac61986760452f132bbe3fb7249cfdac Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:08:53 +0000 Subject: upstream: allow sshd_config longer than 256k; ok djm OpenBSD-Commit-ID: 83f40dd5457a64c1d3928eb4364461b22766beb3 --- msg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/msg.c b/msg.c index 99c25cd25..574a566e3 100644 --- a/msg.c +++ b/msg.c @@ -1,4 +1,4 @@ -/* $OpenBSD: msg.c,v 1.18 2020/01/22 04:49:16 djm Exp $ */ +/* $OpenBSD: msg.c,v 1.19 2020/06/24 15:08:53 markus Exp $ */ /* * Copyright (c) 2002 Markus Friedl. All rights reserved. * @@ -77,7 +77,7 @@ ssh_msg_recv(int fd, struct sshbuf *m) return (-1); } msg_len = get_u32(buf); - if (msg_len > 256 * 1024) { + if (msg_len > sshbuf_max_size(m)) { error("%s: read: bad msg_len %u", __func__, msg_len); return (-1); } -- cgit v1.2.3 From 250246fef22b87a54a63211c60a2def9be431fbd Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:09:53 +0000 Subject: upstream: support loading big sshd_config files w/o realloc; ok djm OpenBSD-Commit-ID: ba9238e810074ac907f0cf8cee1737ac04983171 --- servconf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/servconf.c b/servconf.c index bd8df7fce..22cb9583f 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.365 2020/05/27 22:37:53 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.366 2020/06/24 15:09:53 markus Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -15,6 +15,7 @@ #include #include +#include #ifdef __OpenBSD__ #include #endif @@ -2395,6 +2396,7 @@ process_server_config_line(ServerOptions *options, char *line, void load_server_config(const char *filename, struct sshbuf *conf) { + struct stat st; char *line = NULL, *cp; size_t linesize = 0; FILE *f; @@ -2406,6 +2408,10 @@ load_server_config(const char *filename, struct sshbuf *conf) exit(1); } sshbuf_reset(conf); + /* grow buffer, so realloc is avoided for large config files */ + if (fstat(fileno(f), &st) == 0 && st.st_size > 0 && + (r = sshbuf_allocate(conf, st.st_size)) != 0) + fatal("%s: allocate failed: %s", __func__, ssh_err(r)); while (getline(&line, &linesize, f) != -1) { lineno++; /* -- cgit v1.2.3 From e35995088cd6691a712bfd586bae8084a3a922ba Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:10:38 +0000 Subject: upstream: fix ssh -O proxy w/mux which got broken by no longer making ssh->kex optional in packet.c revision 1.278 ok djm@ OpenBSD-Commit-ID: 2b65df04a064c2c6277359921d2320c90ab7d917 --- packet.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/packet.c b/packet.c index e7abb3416..4cce4133a 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.291 2020/03/06 18:20:44 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.292 2020/06/24 15:10:38 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -282,7 +282,8 @@ ssh_packet_set_input_hook(struct ssh *ssh, ssh_packet_hook_fn *hook, void *ctx) int ssh_packet_is_rekeying(struct ssh *ssh) { - return ssh->state->rekeying || ssh->kex->done == 0; + return ssh->state->rekeying || + (ssh->kex != NULL && ssh->kex->done == 0); } /* @@ -345,6 +346,8 @@ ssh_packet_set_mux(struct ssh *ssh) { ssh->state->mux = 1; ssh->state->rekeying = 0; + kex_free(ssh->kex); + ssh->kex = NULL; } int -- cgit v1.2.3 From 07f5f369a25e228a7357ef6c57205f191f073d99 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:12:09 +0000 Subject: upstream: fix kex mem-leak in ssh_packet_close; ok djm OpenBSD-Commit-ID: e2e9533f393620383afd0b68ef435de8d5e8abe4 --- packet.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packet.c b/packet.c index 4cce4133a..4780356f2 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.292 2020/06/24 15:10:38 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.293 2020/06/24 15:12:09 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -616,6 +616,8 @@ ssh_packet_close_internal(struct ssh *ssh, int do_close) state->newkeys[mode] = NULL; ssh_clear_newkeys(ssh, mode); /* next keys */ } + kex_free(ssh->kex); + ssh->kex = NULL; #ifdef WITH_ZLIB /* compression state is in shared mem, so we can only release it once */ if (do_close && state->compression_buffer) { -- cgit v1.2.3 From c9e24daac6324fcbdba171392c325bf9ccc3c768 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 26 Jun 2020 04:45:11 +0000 Subject: upstream: Expand path to ~/.ssh/rc rather than relying on it being relative to the current directory, so that it'll still be found if the shell startup changes its directory. Since the path is potentially longer, make the cmd buffer that uses it dynamically sized. bz#3185, with & ok djm@ OpenBSD-Commit-ID: 36e33ff01497af3dc8226d0c4c1526fc3a1e46bf --- session.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/session.c b/session.c index 18cdfa8cf..f6193b98e 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.319 2020/03/13 03:17:07 djm Exp $ */ +/* $OpenBSD: session.c,v 1.320 2020/06/26 04:45:11 dtucker Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1206,19 +1206,21 @@ static void do_rc_files(struct ssh *ssh, Session *s, const char *shell) { FILE *f = NULL; - char cmd[1024]; + char *cmd = NULL, *user_rc = NULL; int do_xauth; struct stat st; do_xauth = s->display != NULL && s->auth_proto != NULL && s->auth_data != NULL; + user_rc = tilde_expand_filename("~/" _PATH_SSH_USER_RC, getuid()); /* ignore _PATH_SSH_USER_RC for subsystems and admin forced commands */ if (!s->is_subsystem && options.adm_forced_command == NULL && auth_opts->permit_user_rc && options.permit_user_rc && - stat(_PATH_SSH_USER_RC, &st) >= 0) { - snprintf(cmd, sizeof cmd, "%s -c '%s %s'", - shell, _PATH_BSHELL, _PATH_SSH_USER_RC); + stat(user_rc, &st) >= 0) { + if (xasprintf(&cmd, "%s -c '%s %s'", shell, _PATH_BSHELL, + user_rc) == -1) + fatal("%s: xasprintf: %s", __func__, strerror(errno)); if (debug_flag) fprintf(stderr, "Running %s\n", cmd); f = popen(cmd, "w"); @@ -1229,7 +1231,7 @@ do_rc_files(struct ssh *ssh, Session *s, const char *shell) pclose(f); } else fprintf(stderr, "Could not run %s\n", - _PATH_SSH_USER_RC); + user_rc); } else if (stat(_PATH_SSH_SYSTEM_RC, &st) >= 0) { if (debug_flag) fprintf(stderr, "Running %s %s\n", _PATH_BSHELL, @@ -1254,8 +1256,8 @@ do_rc_files(struct ssh *ssh, Session *s, const char *shell) options.xauth_location, s->auth_display, s->auth_proto, s->auth_data); } - snprintf(cmd, sizeof cmd, "%s -q -", - options.xauth_location); + if (xasprintf(&cmd, "%s -q -", options.xauth_location) == -1) + fatal("%s: xasprintf: %s", __func__, strerror(errno)); f = popen(cmd, "w"); if (f) { fprintf(f, "remove %s\n", @@ -1269,6 +1271,8 @@ do_rc_files(struct ssh *ssh, Session *s, const char *shell) cmd); } } + free(cmd); + free(user_rc); } static void -- cgit v1.2.3 From 74344c3ca42c3f53b00b025daf09ae7f6aa38076 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 26 Jun 2020 05:02:03 +0000 Subject: upstream: Defer creation of ~/.ssh by ssh(1) until we attempt to write to it so we don't leave an empty .ssh directory when it's not needed. Use the same function to replace the code in ssh-keygen that does the same thing. bz#3156, ok djm@ OpenBSD-Commit-ID: 59c073b569be1a60f4de36f491a4339bc4ae870f --- hostfile.c | 36 +++++++++++++++++++++++++++++++++++- hostfile.h | 4 +++- ssh-keygen.c | 21 ++++----------------- ssh.c | 20 ++------------------ 4 files changed, 44 insertions(+), 37 deletions(-) diff --git a/hostfile.c b/hostfile.c index a91dbbd94..4b39def04 100644 --- a/hostfile.c +++ b/hostfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.c,v 1.80 2020/05/13 09:52:41 djm Exp $ */ +/* $OpenBSD: hostfile.c,v 1.81 2020/06/26 05:02:03 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -57,6 +57,7 @@ #include "hostfile.h" #include "log.h" #include "misc.h" +#include "pathnames.h" #include "ssherr.h" #include "digest.h" #include "hmac.h" @@ -449,6 +450,38 @@ write_host_entry(FILE *f, const char *host, const char *ip, return success; } +/* + * Create user ~/.ssh directory if it doesn't exist and we want to write to it. + * If notify is set, a message will be emitted if the directory is created. + */ +void +hostfile_create_user_ssh_dir(const char *filename, int notify) +{ + char *dotsshdir = NULL, *p; + size_t len; + struct stat st; + + if ((p = strrchr(filename, '/')) == NULL) + return; + len = p - filename; + dotsshdir = tilde_expand_filename("~/" _PATH_SSH_USER_DIR, getuid()); + if ((strlen(dotsshdir) > len || strncmp(filename, dotsshdir, len) != 0 + || stat(dotsshdir, &st)) == 0) + ; /* do nothing, path not in ~/.ssh or dir already exists */ + else if (errno != ENOENT) + error("Could not stat %s: %s", dotsshdir, strerror(errno)); + else { + ssh_selinux_setfscreatecon(dotsshdir); + if (mkdir(dotsshdir, 0700) == -1) + error("Could not create directory '%.200s' (%s).", + dotsshdir, strerror(errno)); + else if (notify) + logit("Created directory '%s'.", dotsshdir); + ssh_selinux_setfscreatecon(NULL); + } + free(dotsshdir); +} + /* * Appends an entry to the host file. Returns false if the entry could not * be appended. @@ -462,6 +495,7 @@ add_host_to_hostfile(const char *filename, const char *host, if (key == NULL) return 1; /* XXX ? */ + hostfile_create_user_ssh_dir(filename, 0); f = fopen(filename, "a"); if (!f) return 0; diff --git a/hostfile.h b/hostfile.h index 49fcbb7e8..de8b677e3 100644 --- a/hostfile.h +++ b/hostfile.h @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.h,v 1.25 2020/05/13 09:52:41 djm Exp $ */ +/* $OpenBSD: hostfile.h,v 1.26 2020/06/26 05:02:03 dtucker Exp $ */ /* * Author: Tatu Ylonen @@ -106,4 +106,6 @@ typedef int hostkeys_foreach_fn(struct hostkey_foreach_line *l, void *ctx); int hostkeys_foreach(const char *path, hostkeys_foreach_fn *callback, void *ctx, const char *host, const char *ip, u_int options); +void hostfile_create_user_ssh_dir(const char *, int); + #endif diff --git a/ssh-keygen.c b/ssh-keygen.c index bdc29e00a..7c6f11f40 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.412 2020/05/29 03:11:54 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.413 2020/06/26 05:02:03 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -3082,11 +3082,10 @@ usage(void) int main(int argc, char **argv) { - char dotsshdir[PATH_MAX], comment[1024], *passphrase; + char comment[1024], *passphrase; char *rr_hostname = NULL, *ep, *fp, *ra; struct sshkey *private, *public; struct passwd *pw; - struct stat st; int r, opt, type; int change_passphrase = 0, change_comment = 0, show_cert = 0; int find_host = 0, delete_host = 0, hash_hosts = 0; @@ -3609,20 +3608,8 @@ main(int argc, char **argv) ask_filename(pw, "Enter file in which to save the key"); /* Create ~/.ssh directory if it doesn't already exist. */ - snprintf(dotsshdir, sizeof dotsshdir, "%s/%s", - pw->pw_dir, _PATH_SSH_USER_DIR); - if (strstr(identity_file, dotsshdir) != NULL) { - if (stat(dotsshdir, &st) == -1) { - if (errno != ENOENT) { - error("Could not stat %s: %s", dotsshdir, - strerror(errno)); - } else if (mkdir(dotsshdir, 0700) == -1) { - error("Could not create directory '%s': %s", - dotsshdir, strerror(errno)); - } else if (!quiet) - printf("Created directory '%s'.\n", dotsshdir); - } - } + hostfile_create_user_ssh_dir(identity_file, !quiet); + /* If the file already exists, ask the user to confirm. */ if (!confirm_overwrite(identity_file)) exit(1); diff --git a/ssh.c b/ssh.c index dfae0a73d..a767a1839 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.529 2020/06/05 03:15:26 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.530 2020/06/26 05:02:03 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -645,7 +645,7 @@ main(int ac, char **av) struct ssh *ssh = NULL; int i, r, opt, exit_status, use_syslog, direct, timeout_ms; int was_addr, config_test = 0, opt_terminated = 0, want_final_pass = 0; - char *p, *cp, *line, *argv0, buf[PATH_MAX], *logfile; + char *p, *cp, *line, *argv0, *logfile; char cname[NI_MAXHOST]; struct stat st; struct passwd *pw; @@ -1572,22 +1572,6 @@ main(int ac, char **av) } } - /* Create ~/.ssh * directory if it doesn't already exist. */ - if (config == NULL) { - r = snprintf(buf, sizeof buf, "%s%s%s", pw->pw_dir, - strcmp(pw->pw_dir, "/") ? "/" : "", _PATH_SSH_USER_DIR); - if (r > 0 && (size_t)r < sizeof(buf) && stat(buf, &st) == -1) { -#ifdef WITH_SELINUX - ssh_selinux_setfscreatecon(buf); -#endif - if (mkdir(buf, 0700) < 0) - error("Could not create directory '%.200s'.", - buf); -#ifdef WITH_SELINUX - ssh_selinux_setfscreatecon(NULL); -#endif - } - } /* load options.identity_files */ load_public_identity_files(pw); -- cgit v1.2.3 From a3e0c376ffc11862fa3568b28188bd12965973e1 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 26 Jun 2020 05:03:36 +0000 Subject: upstream: constify a few things; ok dtucker (as part of another diff) OpenBSD-Commit-ID: 7c17fc987085994d752304bd20b1ae267a9bcdf6 --- authfd.c | 6 +++--- authfd.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/authfd.c b/authfd.c index 4b647a628..8288ef215 100644 --- a/authfd.c +++ b/authfd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: authfd.c,v 1.123 2020/03/06 18:24:39 markus Exp $ */ +/* $OpenBSD: authfd.c,v 1.124 2020/06/26 05:03:36 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -336,7 +336,7 @@ ssh_free_identitylist(struct ssh_identitylist *idl) * Returns 0 if found, or a negative SSH_ERR_* error code on failure. */ int -ssh_agent_has_key(int sock, struct sshkey *key) +ssh_agent_has_key(int sock, const struct sshkey *key) { int r, ret = SSH_ERR_KEY_NOT_FOUND; size_t i; @@ -534,7 +534,7 @@ ssh_add_identity_constrained(int sock, struct sshkey *key, * This call is intended only for use by ssh-add(1) and like applications. */ int -ssh_remove_identity(int sock, struct sshkey *key) +ssh_remove_identity(int sock, const struct sshkey *key) { struct sshbuf *msg; int r; diff --git a/authfd.h b/authfd.h index c3bf6259a..4fbf82f8c 100644 --- a/authfd.h +++ b/authfd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: authfd.h,v 1.48 2019/12/21 02:19:13 djm Exp $ */ +/* $OpenBSD: authfd.h,v 1.49 2020/06/26 05:03:36 djm Exp $ */ /* * Author: Tatu Ylonen @@ -33,8 +33,8 @@ 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); -int ssh_agent_has_key(int sock, struct sshkey *key); -int ssh_remove_identity(int sock, struct sshkey *key); +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); int ssh_remove_all_identities(int sock, int version); -- cgit v1.2.3 From fe2ec0b9c19adeab0cd9f04b8152dc17f31c31e5 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 26 Jun 2020 05:04:07 +0000 Subject: upstream: allow "ssh-add -d -" to read keys to be deleted from stdin bz#3180; ok dtucker@ OpenBSD-Commit-ID: 15c7f10289511eb19fce7905c9cae8954e3857ff --- ssh-add.1 | 9 ++++++-- ssh-add.c | 71 ++++++++++++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 61 insertions(+), 19 deletions(-) diff --git a/ssh-add.1 b/ssh-add.1 index 58d42138e..f3db1956e 100644 --- a/ssh-add.1 +++ b/ssh-add.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-add.1,v 1.79 2020/02/07 03:57:31 djm Exp $ +.\" $OpenBSD: ssh-add.1,v 1.80 2020/06/26 05:04:07 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: February 7 2020 $ +.Dd $Mdocdate: June 26 2020 $ .Dt SSH-ADD 1 .Os .Sh NAME @@ -113,6 +113,11 @@ If no public key is found at a given path, will append .Pa .pub and retry. +If the argument list consists of +.Dq - +then +.Nm +will read public keys to be removed from standard input. .It Fl E Ar fingerprint_hash Specifies the hash algorithm used when displaying key fingerprints. Valid options are: diff --git a/ssh-add.c b/ssh-add.c index a40198ab5..931197474 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-add.c,v 1.155 2020/03/16 02:17:02 dtucker Exp $ */ +/* $OpenBSD: ssh-add.c,v 1.156 2020/06/26 05:04:07 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -110,6 +110,54 @@ clear_pass(void) } } +static int +delete_one(int agent_fd, const struct sshkey *key, const char *comment, + const char *path, int qflag) +{ + int r; + + if ((r = ssh_remove_identity(agent_fd, key)) != 0) { + fprintf(stderr, "Could not remove identity \"%s\": %s\n", + path, ssh_err(r)); + return r; + } + if (!qflag) { + fprintf(stderr, "Identity removed: %s %s (%s)\n", path, + sshkey_type(key), comment); + } + return 0; +} + +static int +delete_stdin(int agent_fd, int qflag) +{ + char *line = NULL, *cp; + size_t linesize = 0; + struct sshkey *key = NULL; + int lnum = 0, r, ret = -1; + + while (getline(&line, &linesize, stdin) != -1) { + lnum++; + sshkey_free(key); + key = NULL; + line[strcspn(line, "\n")] = '\0'; + cp = line + strspn(line, " \t"); + if (*cp == '#' || *cp == '\0') + continue; + if ((key = sshkey_new(KEY_UNSPEC)) == NULL) + fatal("%s: sshkey_new", __func__); + if ((r = sshkey_read(key, &cp)) != 0) { + error("(stdin):%d: invalid key: %s", lnum, ssh_err(r)); + continue; + } + if (delete_one(agent_fd, key, cp, "(stdin)", qflag) == 0) + ret = 0; + } + sshkey_free(key); + free(line); + return ret; +} + static int delete_file(int agent_fd, const char *filename, int key_only, int qflag) { @@ -117,19 +165,15 @@ delete_file(int agent_fd, const char *filename, int key_only, int qflag) char *certpath = NULL, *comment = NULL; int r, ret = -1; + if (strcmp(filename, "-") == 0) + return delete_stdin(agent_fd, qflag); + if ((r = sshkey_load_public(filename, &public, &comment)) != 0) { printf("Bad key file %s: %s\n", filename, ssh_err(r)); return -1; } - if ((r = ssh_remove_identity(agent_fd, public)) == 0) { - if (!qflag) { - fprintf(stderr, "Identity removed: %s (%s)\n", - filename, comment); - } + if (delete_one(agent_fd, public, comment, filename, qflag) == 0) ret = 0; - } else - fprintf(stderr, "Could not remove identity \"%s\": %s\n", - filename, ssh_err(r)); if (key_only) goto out; @@ -149,15 +193,8 @@ delete_file(int agent_fd, const char *filename, int key_only, int qflag) fatal("Certificate %s does not match private key %s", certpath, filename); - if ((r = ssh_remove_identity(agent_fd, cert)) == 0) { - if (!qflag) { - fprintf(stderr, "Identity removed: %s (%s)\n", - certpath, comment); - } + if (delete_one(agent_fd, cert, comment, certpath, qflag) == 0) ret = 0; - } else - fprintf(stderr, "Could not remove identity \"%s\": %s\n", - certpath, ssh_err(r)); out: sshkey_free(cert); -- cgit v1.2.3 From 3d06ff4bbd3dca8054c238d2a94c0da563ef7eee Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 26 Jun 2020 05:16:38 +0000 Subject: upstream: handle EINTR in waitfd() and timeout_connect() helpers; bz#3071; ok dtucker@ OpenBSD-Commit-ID: 08fa87be50070bd8b754d9b1ebb1138d7bc9d8ee --- misc.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/misc.c b/misc.c index f29e9bc3a..4623b5755 100644 --- a/misc.c +++ b/misc.c @@ -1,4 +1,4 @@ -/* $OpenBSD: misc.c,v 1.152 2020/05/29 11:17:56 dtucker Exp $ */ +/* $OpenBSD: misc.c,v 1.153 2020/06/26 05:16:38 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2005-2020 Damien Miller. All rights reserved. @@ -253,7 +253,7 @@ waitfd(int fd, int *timeoutp, short events) errno = oerrno; if (r > 0) return 0; - else if (r == -1 && errno != EAGAIN) + else if (r == -1 && errno != EAGAIN && errno != EINTR) return -1; else if (r == 0) break; @@ -292,12 +292,17 @@ timeout_connect(int sockfd, const struct sockaddr *serv_addr, return connect(sockfd, serv_addr, addrlen); set_nonblock(sockfd); - if (connect(sockfd, serv_addr, addrlen) == 0) { - /* Succeeded already? */ - unset_nonblock(sockfd); - return 0; - } else if (errno != EINPROGRESS) - return -1; + for (;;) { + if (connect(sockfd, serv_addr, addrlen) == 0) { + /* Succeeded already? */ + unset_nonblock(sockfd); + return 0; + } else if (errno == EINTR) + continue; + else if (errno != EINPROGRESS) + return -1; + break; + } if (waitfd(sockfd, timeoutp, POLLIN | POLLOUT) == -1) return -1; -- cgit v1.2.3 From c809daaa1bad6b1c305b0e0b5440360f32546c84 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 24 Jun 2020 15:16:23 +0000 Subject: upstream: add test for mux w/-Oproxy; ok djm OpenBSD-Regress-ID: 764d5c696e2a259f1316a056e225e50023abb027 --- regress/multiplex.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/regress/multiplex.sh b/regress/multiplex.sh index 817ddbfa8..4744fa3d9 100644 --- a/regress/multiplex.sh +++ b/regress/multiplex.sh @@ -1,4 +1,4 @@ -# $OpenBSD: multiplex.sh,v 1.32 2020/01/25 02:57:53 dtucker Exp $ +# $OpenBSD: multiplex.sh,v 1.33 2020/06/24 15:16:23 markus Exp $ # Placed in the Public Domain. make_tmpdir @@ -97,22 +97,24 @@ kill $netcat_pid 2>/dev/null rm -f ${COPY} $OBJ/unix-[123].fwd for s in 0 1 4 5 44; do - trace "exit status $s over multiplexed connection" - verbose "test $tid: status $s" - ${SSH} -F $OBJ/ssh_config -S $CTL otherhost exit $s + for mode in "" "-Oproxy"; do + trace "exit status $s over multiplexed connection ($mode)" + verbose "test $tid: status $s ($mode)" + ${SSH} -F $OBJ/ssh_config -S $CTL $mode otherhost exit $s r=$? if [ $r -ne $s ]; then fail "exit code mismatch: $r != $s" fi # same with early close of stdout/err - trace "exit status $s with early close over multiplexed connection" - ${SSH} -F $OBJ/ssh_config -S $CTL -n otherhost \ + trace "exit status $s with early close over multiplexed connection ($mode)" + ${SSH} -F $OBJ/ssh_config -S $CTL -n $mode otherhost \ exec sh -c \'"sleep 2; exec > /dev/null 2>&1; sleep 3; exit $s"\' r=$? if [ $r -ne $s ]; then fail "exit code (with sleep) mismatch: $r != $s" fi + done done verbose "test $tid: cmd check" -- cgit v1.2.3 From e073106f370cdd2679e41f6f55a37b491f0e82fe Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 26 Jun 2020 05:12:21 +0000 Subject: upstream: regress test for ssh-add -d; ok dtucker@ OpenBSD-Regress-ID: 3a2e044be616afc7dd4f56c100179e83b33d8abf --- regress/agent.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/regress/agent.sh b/regress/agent.sh index 39403653c..66973de2b 100644 --- a/regress/agent.sh +++ b/regress/agent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: agent.sh,v 1.17 2019/12/21 02:33:07 djm Exp $ +# $OpenBSD: agent.sh,v 1.18 2020/06/26 05:12:21 djm Exp $ # Placed in the Public Domain. tid="simple agent test" @@ -45,17 +45,20 @@ for t in ${SSH_KEYTYPES}; do # add to authorized keys cat $OBJ/$t-agent.pub >> $OBJ/authorized_keys_$USER # add private key to agent - ${SSHADD} $OBJ/$t-agent #> /dev/null 2>&1 + ${SSHADD} $OBJ/$t-agent > /dev/null 2>&1 if [ $? -ne 0 ]; then fail "ssh-add failed exit code $?" fi # add private key to second agent - SSH_AUTH_SOCK=$FW_SSH_AUTH_SOCK ${SSHADD} $OBJ/$t-agent #> /dev/null 2>&1 + SSH_AUTH_SOCK=$FW_SSH_AUTH_SOCK ${SSHADD} $OBJ/$t-agent > /dev/null 2>&1 if [ $? -ne 0 ]; then fail "ssh-add failed exit code $?" fi - # Remove private key to ensure that we aren't accidentally using it. - rm -f $OBJ/$t-agent + # Move private key to ensure that we aren't accidentally using it. + # Keep the corresponding public keys/certs around for later use. + mv -f $OBJ/$t-agent $OBJ/$t-agent-private + cp -f $OBJ/$t-agent.pub $OBJ/$t-agent-private.pub + cp -f $OBJ/$t-agent-cert.pub $OBJ/$t-agent-private-cert.pub done # Remove explicit identity directives from ssh_proxy @@ -152,12 +155,72 @@ for t in ${SSH_KEYTYPES}; do fi done +## Deletion tests. + trace "delete all agent keys" ${SSHADD} -D > /dev/null 2>&1 r=$? if [ $r -ne 0 ]; then fail "ssh-add -D failed: exit code $r" fi +# make sure they're gone +${SSHADD} -l > /dev/null 2>&1 +r=$? +if [ $r -ne 1 ]; then + fail "ssh-add -l returned unexpected exit code: $r" +fi +trace "readd keys" +# re-add keys/certs to agent +for t in ${SSH_KEYTYPES}; do + ${SSHADD} $OBJ/$t-agent-private >/dev/null 2>&1 || \ + fail "ssh-add failed exit code $?" +done +# make sure they are there +${SSHADD} -l > /dev/null 2>&1 +r=$? +if [ $r -ne 0 ]; then + fail "ssh-add -l failed: exit code $r" +fi + +check_key_absent() { + ${SSHADD} -L | grep "^$1 " >/dev/null + if [ $? -eq 0 ]; then + fail "$1 key unexpectedly present" + fi +} +check_key_present() { + ${SSHADD} -L | grep "^$1 " >/dev/null + if [ $? -ne 0 ]; then + fail "$1 key missing from agent" + fi +} + +# delete the ed25519 key +trace "delete single key by file" +${SSHADD} -qdk ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" +check_key_absent ssh-ed25519 +check_key_present ssh-ed25519-cert-v01@openssh.com +# Put key/cert back. +${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \ + fail "ssh-add failed exit code $?" +check_key_present ssh-ed25519 +# Delete both key and certificate. +trace "delete key/cert by file" +${SSHADD} -qd ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" +check_key_absent ssh-ed25519 +check_key_absent ssh-ed25519-cert-v01@openssh.com +# Put key/cert back. +${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \ + fail "ssh-add failed exit code $?" +check_key_present ssh-ed25519 +# Delete certificate via stdin +${SSHADD} -qd - < ssh-ed25519-agent-cert.pub || fail "ssh-add -d - failed" +check_key_present ssh-ed25519 +check_key_absent ssh-ed25519-cert-v01@openssh.com +# Delete key via stdin +${SSHADD} -qd - < ssh-ed25519-agent.pub || fail "ssh-add -d - failed" +check_key_absent ssh-ed25519 +check_key_absent ssh-ed25519-cert-v01@openssh.com trace "kill agent" ${SSHAGENT} -k > /dev/null -- cgit v1.2.3 From 32b2502a9dfdfded1ccdc1fd6dc2b3fe41bfc205 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 26 Jun 2020 15:30:06 +1000 Subject: missing ifdef SELINUX; spotted by dtucker --- hostfile.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hostfile.c b/hostfile.c index 4b39def04..1cc4dba92 100644 --- a/hostfile.c +++ b/hostfile.c @@ -471,13 +471,17 @@ hostfile_create_user_ssh_dir(const char *filename, int notify) else if (errno != ENOENT) error("Could not stat %s: %s", dotsshdir, strerror(errno)); else { +#ifdef WITH_SELINUX ssh_selinux_setfscreatecon(dotsshdir); +#endif if (mkdir(dotsshdir, 0700) == -1) error("Could not create directory '%.200s' (%s).", dotsshdir, strerror(errno)); else if (notify) logit("Created directory '%s'.", dotsshdir); +#ifdef WITH_SELINUX ssh_selinux_setfscreatecon(NULL); +#endif } free(dotsshdir); } -- cgit v1.2.3 From 976c4f86286d52a0cb2aadf4a095d379c0da752e Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 26 Jun 2020 05:42:16 +0000 Subject: upstream: avoid spurious error message when ssh-keygen creates files outside ~/.ssh; with dtucker@ OpenBSD-Commit-ID: ac0c662d44607e00ec78c266ee60752beb1c7e08 --- Makefile.in | 3 +-- configure.ac | 8 +------- hostfile.c | 10 ++++++---- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/Makefile.in b/Makefile.in index 99dfdceda..30a7fff2d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -49,7 +49,6 @@ PICFLAG=@PICFLAG@ LIBS=@LIBS@ K5LIBS=@K5LIBS@ GSSLIBS=@GSSLIBS@ -SSHLIBS=@SSHLIBS@ SSHDLIBS=@SSHDLIBS@ LIBEDIT=@LIBEDIT@ LIBFIDO2=@LIBFIDO2@ @@ -206,7 +205,7 @@ libssh.a: $(LIBSSH_OBJS) $(RANLIB) $@ ssh$(EXEEXT): $(LIBCOMPAT) libssh.a $(SSHOBJS) - $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHLIBS) $(LIBS) $(GSSLIBS) + $(LD) -o $@ $(SSHOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(LIBS) $(GSSLIBS) sshd$(EXEEXT): libssh.a $(LIBCOMPAT) $(SSHDOBJS) $(LD) -o $@ $(SSHDOBJS) $(LDFLAGS) -lssh -lopenbsd-compat $(SSHDLIBS) $(LIBS) $(GSSLIBS) $(K5LIBS) diff --git a/configure.ac b/configure.ac index 0ea85bed0..d6edb24f2 100644 --- a/configure.ac +++ b/configure.ac @@ -4516,13 +4516,10 @@ AC_ARG_WITH([selinux], LIBS="$LIBS -lselinux" ], AC_MSG_ERROR([SELinux support requires libselinux library])) - SSHLIBS="$SSHLIBS $LIBSELINUX" - SSHDLIBS="$SSHDLIBS $LIBSELINUX" AC_CHECK_FUNCS([getseuserbyname get_default_context_with_level]) - LIBS="$save_LIBS" + LIBS="$save_LIBS $LIBSELINUX" fi ] ) -AC_SUBST([SSHLIBS]) AC_SUBST([SSHDLIBS]) # Check whether user wants Kerberos 5 support @@ -5483,9 +5480,6 @@ echo " Libraries: ${LIBS}" if test ! -z "${SSHDLIBS}"; then echo " +for sshd: ${SSHDLIBS}" fi -if test ! -z "${SSHLIBS}"; then -echo " +for ssh: ${SSHLIBS}" -fi echo "" diff --git a/hostfile.c b/hostfile.c index 1cc4dba92..936d8c9be 100644 --- a/hostfile.c +++ b/hostfile.c @@ -1,4 +1,4 @@ -/* $OpenBSD: hostfile.c,v 1.81 2020/06/26 05:02:03 dtucker Exp $ */ +/* $OpenBSD: hostfile.c,v 1.82 2020/06/26 05:42:16 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -465,9 +465,10 @@ hostfile_create_user_ssh_dir(const char *filename, int notify) return; len = p - filename; dotsshdir = tilde_expand_filename("~/" _PATH_SSH_USER_DIR, getuid()); - if ((strlen(dotsshdir) > len || strncmp(filename, dotsshdir, len) != 0 - || stat(dotsshdir, &st)) == 0) - ; /* do nothing, path not in ~/.ssh or dir already exists */ + if (strlen(dotsshdir) > len || strncmp(filename, dotsshdir, len) != 0) + goto out; /* not ~/.ssh prefixed */ + if (stat(dotsshdir, &st) == 0) + goto out; /* dir already exists */ else if (errno != ENOENT) error("Could not stat %s: %s", dotsshdir, strerror(errno)); else { @@ -483,6 +484,7 @@ hostfile_create_user_ssh_dir(const char *filename, int notify) ssh_selinux_setfscreatecon(NULL); #endif } + out: free(dotsshdir); } -- cgit v1.2.3 From 598c3a5e3885080ced0d7c40fde00f1d5cdbb32b Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 26 Jun 2020 16:07:12 +1000 Subject: document a PAM spec problem in a frustrated comment --- auth-pam.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/auth-pam.c b/auth-pam.c index 5a3ba09b4..832382151 100644 --- a/auth-pam.c +++ b/auth-pam.c @@ -375,7 +375,11 @@ import_environments(struct sshbuf *b) error("PAM: pam_putenv: %s", pam_strerror(sshpam_handle, r)); } - /* XXX leak env? */ + /* + * XXX this possibly leaks env because it is not documented + * what pam_putenv() does with it. Does it copy it? Does it + * take ownweship? We don't know, so it's safest just to leak. + */ } #endif } -- cgit v1.2.3 From 14beca57ac92d62830c42444c26ba861812dc837 Mon Sep 17 00:00:00 2001 From: "semarie@openbsd.org" Date: Fri, 26 Jun 2020 11:26:01 +0000 Subject: upstream: backout 1.293 fix kex mem-leak in ssh_packet_close at markus request the change introduced a NULL deref in sshpkt_vfatal() (uses of ssh->kex after calling ssh_packet_clear_keys()) OpenBSD-Commit-ID: 9c9a6721411461b0b1c28dc00930d7251a798484 --- packet.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packet.c b/packet.c index 4780356f2..9ffd9f59b 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.293 2020/06/24 15:12:09 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.294 2020/06/26 11:26:01 semarie Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -616,8 +616,6 @@ ssh_packet_close_internal(struct ssh *ssh, int do_close) state->newkeys[mode] = NULL; ssh_clear_newkeys(ssh, mode); /* next keys */ } - kex_free(ssh->kex); - ssh->kex = NULL; #ifdef WITH_ZLIB /* compression state is in shared mem, so we can only release it once */ if (do_close && state->compression_buffer) { -- cgit v1.2.3 From e1c401109b61f7dbc199b5099933d579e7fc5dc9 Mon Sep 17 00:00:00 2001 From: "bket@openbsd.org" Date: Sat, 27 Jun 2020 13:39:09 +0000 Subject: upstream: Replace TAILQ concatenation loops with TAILQ_CONCAT OK djm@ OpenBSD-Commit-ID: 454b40e09a117ddb833794358970a65b14c431ef --- sshconnect2.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/sshconnect2.c b/sshconnect2.c index 821af2150..74946da0d 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.323 2020/06/05 03:24:16 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.324 2020/06/27 13:39:09 bket Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -1671,10 +1671,7 @@ pubkey_prepare(Authctxt *authctxt) } ssh_free_identitylist(idlist); /* append remaining agent keys */ - for (id = TAILQ_FIRST(&agent); id; id = TAILQ_FIRST(&agent)) { - TAILQ_REMOVE(&agent, id, next); - TAILQ_INSERT_TAIL(preferred, id, next); - } + TAILQ_CONCAT(preferred, &agent, next); authctxt->agent_fd = agent_fd; } /* Prefer PKCS11 keys that are explicitly listed */ @@ -1700,10 +1697,7 @@ pubkey_prepare(Authctxt *authctxt) } } /* append remaining keys from the config file */ - for (id = TAILQ_FIRST(&files); id; id = TAILQ_FIRST(&files)) { - TAILQ_REMOVE(&files, id, next); - TAILQ_INSERT_TAIL(preferred, id, next); - } + TAILQ_CONCAT(preferred, &files, next); /* finally, filter by PubkeyAcceptedKeyTypes */ TAILQ_FOREACH_SAFE(id, preferred, next, id2) { if (id->key != NULL && !key_type_allowed_by_config(id->key)) { -- cgit v1.2.3 From 55ef3e9cbd5b336bd0f89205716924886fcf86de Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Wed, 1 Jul 2020 16:28:31 +0000 Subject: upstream: free kex in ssh_packet_close; ok djm semarie OpenBSD-Commit-ID: dbc181e90d3d32fd97b10d75e68e374270e070a2 --- packet.c | 4 +++- ssh_api.c | 6 ++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packet.c b/packet.c index 9ffd9f59b..042ec7c4f 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.294 2020/06/26 11:26:01 semarie Exp $ */ +/* $OpenBSD: packet.c,v 1.295 2020/07/01 16:28:31 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -654,6 +654,8 @@ ssh_packet_close_internal(struct ssh *ssh, int do_close) ssh->remote_ipaddr = NULL; free(ssh->state); ssh->state = NULL; + kex_free(ssh->kex); + ssh->kex = NULL; } } diff --git a/ssh_api.c b/ssh_api.c index e0b195521..a0358d4be 100644 --- a/ssh_api.c +++ b/ssh_api.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh_api.c,v 1.19 2019/10/31 21:23:19 djm Exp $ */ +/* $OpenBSD: ssh_api.c,v 1.20 2020/07/01 16:28:31 markus Exp $ */ /* * Copyright (c) 2012 Markus Friedl. All rights reserved. * @@ -152,7 +152,6 @@ ssh_free(struct ssh *ssh) { struct key_entry *k; - ssh_packet_close(ssh); /* * we've only created the public keys variants in case we * are a acting as a server. @@ -167,8 +166,7 @@ ssh_free(struct ssh *ssh) TAILQ_REMOVE(&ssh->private_keys, k, next); free(k); } - if (ssh->kex) - kex_free(ssh->kex); + ssh_packet_close(ssh); free(ssh); } -- cgit v1.2.3 From 1b90ddde49e2ff377204082b6eb130a096411dc1 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 05:08:41 +0000 Subject: upstream: fix memory leak of mux_ctx; patch from Sergiy Lozovsky via bz3189 ok dtucker OpenBSD-Commit-ID: db249bd4526fd42d0f4f43f72f7b8b7705253bde --- channels.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/channels.c b/channels.c index 95a51e21b..14f958fa6 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.398 2020/04/25 06:59:36 dtucker Exp $ */ +/* $OpenBSD: channels.c,v 1.399 2020/07/03 05:08:41 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -621,6 +621,8 @@ channel_free(struct ssh *ssh, Channel *c) c->path = NULL; free(c->listening_addr); c->listening_addr = NULL; + free(c->mux_ctx); + c->mux_ctx = NULL; while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) { if (cc->abandon_cb != NULL) cc->abandon_cb(ssh, c, cc->ctx); -- cgit v1.2.3 From adfdbf1211914b631c038f0867a447db7b519937 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 3 Jul 2020 15:15:15 +1000 Subject: sync sys-queue.h with OpenBSD upstream needed for TAILQ_CONCAT --- openbsd-compat/sys-queue.h | 260 ++++++++++++++++++++------------------------- 1 file changed, 113 insertions(+), 147 deletions(-) diff --git a/openbsd-compat/sys-queue.h b/openbsd-compat/sys-queue.h index 5108f394c..a171f8b55 100644 --- a/openbsd-compat/sys-queue.h +++ b/openbsd-compat/sys-queue.h @@ -1,4 +1,4 @@ -/* $OpenBSD: queue.h,v 1.36 2012/04/11 13:29:14 naddy Exp $ */ +/* $OpenBSD: queue.h,v 1.45 2018/07/12 14:22:54 sashan Exp $ */ /* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ /* @@ -127,8 +127,8 @@ #undef CIRCLEQ_REPLACE /* - * This file defines five types of data structures: singly-linked lists, - * lists, simple queues, tail queues, and circular queues. + * This file defines five types of data structures: singly-linked lists, + * lists, simple queues, tail queues and XOR simple queues. * * * A singly-linked list is headed by a single forward pointer. The elements @@ -148,7 +148,7 @@ * or after an existing element or at the head of the list. A list * may only be traversed in the forward direction. * - * A simple queue is headed by a pair of pointers, one the head of the + * A simple queue is headed by a pair of pointers, one to the head of the * list and the other to the tail of the list. The elements are singly * linked to save space, so elements can only be removed from the * head of the list. New elements can be added to the list before or after @@ -162,19 +162,17 @@ * after an existing element, at the head of the list, or at the end of * the list. A tail queue may be traversed in either direction. * - * A circle queue is headed by a pair of pointers, one to the head of the - * list and the other to the tail of the list. The elements are doubly - * linked so that an arbitrary element can be removed without a need to - * traverse the list. New elements can be added to the list before or after - * an existing element, at the head of the list, or at the end of the list. - * A circle queue may be traversed in either direction, but has a more - * complex end of list detection. + * An XOR simple queue is used in the same way as a regular simple queue. + * The difference is that the head structure also includes a "cookie" that + * is XOR'd with the queue pointer (first, last or next) to generate the + * real pointer value. * * For details on the use of these macros, see the queue(3) manual page. */ #if defined(QUEUE_MACRO_DEBUG) || (defined(_KERNEL) && defined(DIAGNOSTIC)) -#define _Q_INVALIDATE(a) (a) = ((void *)-1) +#define _Q_INVALID ((void *)-1) +#define _Q_INVALIDATE(a) (a) = _Q_INVALID #else #define _Q_INVALIDATE(a) #endif @@ -186,15 +184,15 @@ struct name { \ struct type *slh_first; /* first element */ \ } - + #define SLIST_HEAD_INITIALIZER(head) \ { NULL } - + #define SLIST_ENTRY(type) \ struct { \ struct type *sle_next; /* next element */ \ } - + /* * Singly-linked List access methods. */ @@ -248,8 +246,8 @@ struct { \ curelm = curelm->field.sle_next; \ curelm->field.sle_next = \ curelm->field.sle_next->field.sle_next; \ - _Q_INVALIDATE((elm)->field.sle_next); \ } \ + _Q_INVALIDATE((elm)->field.sle_next); \ } while (0) /* @@ -270,7 +268,7 @@ struct { \ } /* - * List access methods + * List access methods. */ #define LIST_FIRST(head) ((head)->lh_first) #define LIST_END(head) NULL @@ -407,6 +405,94 @@ struct { \ (head)->sqh_last = &(elm)->field.sqe_next; \ } while (0) +#define SIMPLEQ_CONCAT(head1, head2) do { \ + if (!SIMPLEQ_EMPTY((head2))) { \ + *(head1)->sqh_last = (head2)->sqh_first; \ + (head1)->sqh_last = (head2)->sqh_last; \ + SIMPLEQ_INIT((head2)); \ + } \ +} while (0) + +/* + * XOR Simple queue definitions. + */ +#define XSIMPLEQ_HEAD(name, type) \ +struct name { \ + struct type *sqx_first; /* first element */ \ + struct type **sqx_last; /* addr of last next element */ \ + unsigned long sqx_cookie; \ +} + +#define XSIMPLEQ_ENTRY(type) \ +struct { \ + struct type *sqx_next; /* next element */ \ +} + +/* + * XOR Simple queue access methods. + */ +#define XSIMPLEQ_XOR(head, ptr) ((__typeof(ptr))((head)->sqx_cookie ^ \ + (unsigned long)(ptr))) +#define XSIMPLEQ_FIRST(head) XSIMPLEQ_XOR(head, ((head)->sqx_first)) +#define XSIMPLEQ_END(head) NULL +#define XSIMPLEQ_EMPTY(head) (XSIMPLEQ_FIRST(head) == XSIMPLEQ_END(head)) +#define XSIMPLEQ_NEXT(head, elm, field) XSIMPLEQ_XOR(head, ((elm)->field.sqx_next)) + + +#define XSIMPLEQ_FOREACH(var, head, field) \ + for ((var) = XSIMPLEQ_FIRST(head); \ + (var) != XSIMPLEQ_END(head); \ + (var) = XSIMPLEQ_NEXT(head, var, field)) + +#define XSIMPLEQ_FOREACH_SAFE(var, head, field, tvar) \ + for ((var) = XSIMPLEQ_FIRST(head); \ + (var) && ((tvar) = XSIMPLEQ_NEXT(head, var, field), 1); \ + (var) = (tvar)) + +/* + * XOR Simple queue functions. + */ +#define XSIMPLEQ_INIT(head) do { \ + arc4random_buf(&(head)->sqx_cookie, sizeof((head)->sqx_cookie)); \ + (head)->sqx_first = XSIMPLEQ_XOR(head, NULL); \ + (head)->sqx_last = XSIMPLEQ_XOR(head, &(head)->sqx_first); \ +} while (0) + +#define XSIMPLEQ_INSERT_HEAD(head, elm, field) do { \ + if (((elm)->field.sqx_next = (head)->sqx_first) == \ + XSIMPLEQ_XOR(head, NULL)) \ + (head)->sqx_last = XSIMPLEQ_XOR(head, &(elm)->field.sqx_next); \ + (head)->sqx_first = XSIMPLEQ_XOR(head, (elm)); \ +} while (0) + +#define XSIMPLEQ_INSERT_TAIL(head, elm, field) do { \ + (elm)->field.sqx_next = XSIMPLEQ_XOR(head, NULL); \ + *(XSIMPLEQ_XOR(head, (head)->sqx_last)) = XSIMPLEQ_XOR(head, (elm)); \ + (head)->sqx_last = XSIMPLEQ_XOR(head, &(elm)->field.sqx_next); \ +} while (0) + +#define XSIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ + if (((elm)->field.sqx_next = (listelm)->field.sqx_next) == \ + XSIMPLEQ_XOR(head, NULL)) \ + (head)->sqx_last = XSIMPLEQ_XOR(head, &(elm)->field.sqx_next); \ + (listelm)->field.sqx_next = XSIMPLEQ_XOR(head, (elm)); \ +} while (0) + +#define XSIMPLEQ_REMOVE_HEAD(head, field) do { \ + if (((head)->sqx_first = XSIMPLEQ_XOR(head, \ + (head)->sqx_first)->field.sqx_next) == XSIMPLEQ_XOR(head, NULL)) \ + (head)->sqx_last = XSIMPLEQ_XOR(head, &(head)->sqx_first); \ +} while (0) + +#define XSIMPLEQ_REMOVE_AFTER(head, elm, field) do { \ + if (((elm)->field.sqx_next = XSIMPLEQ_XOR(head, \ + (elm)->field.sqx_next)->field.sqx_next) \ + == XSIMPLEQ_XOR(head, NULL)) \ + (head)->sqx_last = \ + XSIMPLEQ_XOR(head, &(elm)->field.sqx_next); \ +} while (0) + + /* * Tail queue definitions. */ @@ -425,8 +511,8 @@ struct { \ struct type **tqe_prev; /* address of previous next element */ \ } -/* - * tail queue access methods +/* + * Tail queue access methods. */ #define TAILQ_FIRST(head) ((head)->tqh_first) #define TAILQ_END(head) NULL @@ -527,133 +613,13 @@ struct { \ _Q_INVALIDATE((elm)->field.tqe_next); \ } while (0) -/* - * Circular queue definitions. - */ -#define CIRCLEQ_HEAD(name, type) \ -struct name { \ - struct type *cqh_first; /* first element */ \ - struct type *cqh_last; /* last element */ \ -} - -#define CIRCLEQ_HEAD_INITIALIZER(head) \ - { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } - -#define CIRCLEQ_ENTRY(type) \ -struct { \ - struct type *cqe_next; /* next element */ \ - struct type *cqe_prev; /* previous element */ \ -} - -/* - * Circular queue access methods - */ -#define CIRCLEQ_FIRST(head) ((head)->cqh_first) -#define CIRCLEQ_LAST(head) ((head)->cqh_last) -#define CIRCLEQ_END(head) ((void *)(head)) -#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) -#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) -#define CIRCLEQ_EMPTY(head) \ - (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) - -#define CIRCLEQ_FOREACH(var, head, field) \ - for((var) = CIRCLEQ_FIRST(head); \ - (var) != CIRCLEQ_END(head); \ - (var) = CIRCLEQ_NEXT(var, field)) - -#define CIRCLEQ_FOREACH_SAFE(var, head, field, tvar) \ - for ((var) = CIRCLEQ_FIRST(head); \ - (var) != CIRCLEQ_END(head) && \ - ((tvar) = CIRCLEQ_NEXT(var, field), 1); \ - (var) = (tvar)) - -#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ - for((var) = CIRCLEQ_LAST(head); \ - (var) != CIRCLEQ_END(head); \ - (var) = CIRCLEQ_PREV(var, field)) - -#define CIRCLEQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar) \ - for ((var) = CIRCLEQ_LAST(head, headname); \ - (var) != CIRCLEQ_END(head) && \ - ((tvar) = CIRCLEQ_PREV(var, headname, field), 1); \ - (var) = (tvar)) - -/* - * Circular queue functions. - */ -#define CIRCLEQ_INIT(head) do { \ - (head)->cqh_first = CIRCLEQ_END(head); \ - (head)->cqh_last = CIRCLEQ_END(head); \ -} while (0) - -#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ - (elm)->field.cqe_next = (listelm)->field.cqe_next; \ - (elm)->field.cqe_prev = (listelm); \ - if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm); \ - else \ - (listelm)->field.cqe_next->field.cqe_prev = (elm); \ - (listelm)->field.cqe_next = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ - (elm)->field.cqe_next = (listelm); \ - (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ - if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm); \ - else \ - (listelm)->field.cqe_prev->field.cqe_next = (elm); \ - (listelm)->field.cqe_prev = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ - (elm)->field.cqe_next = (head)->cqh_first; \ - (elm)->field.cqe_prev = CIRCLEQ_END(head); \ - if ((head)->cqh_last == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm); \ - else \ - (head)->cqh_first->field.cqe_prev = (elm); \ - (head)->cqh_first = (elm); \ -} while (0) - -#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ - (elm)->field.cqe_next = CIRCLEQ_END(head); \ - (elm)->field.cqe_prev = (head)->cqh_last; \ - if ((head)->cqh_first == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm); \ - else \ - (head)->cqh_last->field.cqe_next = (elm); \ - (head)->cqh_last = (elm); \ -} while (0) - -#define CIRCLEQ_REMOVE(head, elm, field) do { \ - if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \ - (head)->cqh_last = (elm)->field.cqe_prev; \ - else \ - (elm)->field.cqe_next->field.cqe_prev = \ - (elm)->field.cqe_prev; \ - if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \ - (head)->cqh_first = (elm)->field.cqe_next; \ - else \ - (elm)->field.cqe_prev->field.cqe_next = \ - (elm)->field.cqe_next; \ - _Q_INVALIDATE((elm)->field.cqe_prev); \ - _Q_INVALIDATE((elm)->field.cqe_next); \ -} while (0) - -#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ - if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \ - CIRCLEQ_END(head)) \ - (head).cqh_last = (elm2); \ - else \ - (elm2)->field.cqe_next->field.cqe_prev = (elm2); \ - if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \ - CIRCLEQ_END(head)) \ - (head).cqh_first = (elm2); \ - else \ - (elm2)->field.cqe_prev->field.cqe_next = (elm2); \ - _Q_INVALIDATE((elm)->field.cqe_prev); \ - _Q_INVALIDATE((elm)->field.cqe_next); \ +#define TAILQ_CONCAT(head1, head2, field) do { \ + if (!TAILQ_EMPTY(head2)) { \ + *(head1)->tqh_last = (head2)->tqh_first; \ + (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \ + (head1)->tqh_last = (head2)->tqh_last; \ + TAILQ_INIT((head2)); \ + } \ } while (0) -#endif /* !_FAKE_QUEUE_H_ */ +#endif /* !_SYS_QUEUE_H_ */ -- cgit v1.2.3 From f11b23346309e4d5138e733a49321aedd6eeaa2f Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 3 Jul 2020 05:09:06 +0000 Subject: upstream: Only reset the serveralive check when we receive traffic from the server and ignore traffic from a port forwarding client, preventing a client from keeping a connection alive when it should be terminated. Based on a patch from jxraynor at gmail.com via openssh-unix-dev and bz#2265, ok djm@ OpenBSD-Commit-ID: a941a575a5cbc244c0ef5d7abd0422bbf02c2dcd --- clientloop.c | 36 ++++++++++++++++++++++-------------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/clientloop.c b/clientloop.c index da396c72a..c82b084da 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.344 2020/04/24 02:19:40 dtucker Exp $ */ +/* $OpenBSD: clientloop.c,v 1.345 2020/07/03 05:09:06 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -162,6 +162,7 @@ static int connection_out; /* Connection to server (output). */ static int need_rekeying; /* Set to non-zero if rekeying is requested. */ static int session_closed; /* In SSH2: login session closed. */ static u_int x11_refuse_time; /* If >0, refuse x11 opens after this time. */ +static time_t server_alive_time; /* Time to do server_alive_check */ static void client_init_dispatch(struct ssh *ssh); int session_ident = -1; @@ -466,6 +467,13 @@ client_global_request_reply(int type, u_int32_t seq, struct ssh *ssh) return 0; } +static void +schedule_server_alive_check(void) +{ + if (options.server_alive_interval > 0) + server_alive_time = monotime() + options.server_alive_interval; +} + static void server_alive_check(struct ssh *ssh) { @@ -482,6 +490,7 @@ server_alive_check(struct ssh *ssh) fatal("%s: send packet: %s", __func__, ssh_err(r)); /* Insert an empty placeholder to maintain ordering */ client_register_global_confirm(NULL, NULL); + schedule_server_alive_check(); } /* @@ -495,7 +504,7 @@ client_wait_until_can_do_something(struct ssh *ssh, { struct timeval tv, *tvp; int timeout_secs; - time_t minwait_secs = 0, server_alive_time = 0, now = monotime(); + time_t minwait_secs = 0, now = monotime(); int r, ret; /* Add any selections by the channel mechanism. */ @@ -524,10 +533,8 @@ client_wait_until_can_do_something(struct ssh *ssh, */ timeout_secs = INT_MAX; /* we use INT_MAX to mean no timeout */ - if (options.server_alive_interval > 0) { - timeout_secs = options.server_alive_interval; - server_alive_time = now + options.server_alive_interval; - } + if (options.server_alive_interval > 0) + timeout_secs = MAXIMUM(server_alive_time - now, 0); if (options.rekey_interval > 0 && !rekeying) timeout_secs = MINIMUM(timeout_secs, ssh_packet_get_rekey_timeout(ssh)); @@ -557,7 +564,6 @@ client_wait_until_can_do_something(struct ssh *ssh, */ memset(*readsetp, 0, *nallocp); memset(*writesetp, 0, *nallocp); - if (errno == EINTR) return; /* Note: we might still have data in the buffers. */ @@ -565,15 +571,14 @@ client_wait_until_can_do_something(struct ssh *ssh, "select: %s\r\n", strerror(errno))) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); quit_pending = 1; - } else if (ret == 0) { + } else if (options.server_alive_interval > 0 && !FD_ISSET(connection_in, + *readsetp) && monotime() >= server_alive_time) /* - * Timeout. Could have been either keepalive or rekeying. - * Keepalive we check here, rekeying is checked in clientloop. + * ServerAlive check is needed. We can't rely on the select + * timing out since traffic on the client side such as port + * forwards can keep waking it up. */ - if (server_alive_time != 0 && server_alive_time <= monotime()) - server_alive_check(ssh); - } - + server_alive_check(ssh); } static void @@ -613,6 +618,7 @@ client_process_net_input(struct ssh *ssh, fd_set *readset) * 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) { @@ -1314,6 +1320,8 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, client_channel_closed, 0); } + schedule_server_alive_check(); + /* Main loop of the client for the interactive session mode. */ while (!quit_pending) { -- cgit v1.2.3 From 6fcfd303d67f16695198cf23d109a988e40eefb6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 3 Jul 2020 15:28:27 +1000 Subject: add check for fido_cred_set_prot() to configure --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index d6edb24f2..c03db2732 100644 --- a/configure.ac +++ b/configure.ac @@ -3176,6 +3176,9 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" = "xyes" ; then ], [ AC_MSG_ERROR([no usable libfido2 found]) ], [ $OTHERLIBS ] ) + AC_CHECK_LIB([fido2], [fido_cred_set_prot], [], + [ AC_MSG_ERROR([libfido2 missing fido_cred_set_prot; please use libfido2 >= 1.4.0]) ], + ) AC_CHECK_HEADER([fido.h], [], AC_MSG_ERROR([missing fido.h from libfido2])) AC_CHECK_HEADER([fido/credman.h], [], -- cgit v1.2.3 From 183c4aaef944af3a1a909ffa01058c65bac55748 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 06:29:57 +0000 Subject: upstream: start ClientAliveInterval bookkeeping before first pass through select() loop; fixed theoretical case where busy sshd may ignore timeouts from client; inspired by and ok dtucker OpenBSD-Commit-ID: 96bfc4b1f86c7da313882a84755b2b47eb31957f --- serverloop.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/serverloop.c b/serverloop.c index 340b19a5a..48d936d2e 100644 --- a/serverloop.c +++ b/serverloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: serverloop.c,v 1.222 2020/01/30 07:21:38 djm Exp $ */ +/* $OpenBSD: serverloop.c,v 1.223 2020/07/03 06:29:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -253,6 +253,8 @@ wait_until_can_do_something(struct ssh *ssh, max_time_ms = keepalive_ms; client_alive_scheduled = 1; } + if (last_client_time == 0) + last_client_time = monotime(); } #if 0 -- cgit v1.2.3 From c8935081db35d73ee6355999142fa0776a2af912 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 06:46:41 +0000 Subject: upstream: when redirecting sshd's log output to a file, undo this redirection after the session child process is forked(); ok dtucker@ OpenBSD-Commit-ID: 6df86dd653c91f5bc8ac1916e7680d9d24690865 --- log.c | 10 +++++++++- session.c | 5 ++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/log.c b/log.c index d9c2d136c..6b1a7a314 100644 --- a/log.c +++ b/log.c @@ -1,4 +1,4 @@ -/* $OpenBSD: log.c,v 1.51 2018/07/27 12:03:17 markus Exp $ */ +/* $OpenBSD: log.c,v 1.52 2020/07/03 06:46:41 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -370,6 +370,14 @@ log_redirect_stderr_to(const char *logfile) { int fd; + if (logfile == NULL) { + if (log_stderr_fd != STDERR_FILENO) { + close(log_stderr_fd); + log_stderr_fd = STDERR_FILENO; + } + return; + } + if ((fd = open(logfile, O_WRONLY|O_CREAT|O_APPEND, 0600)) == -1) { fprintf(stderr, "Couldn't open logfile %s: %s\n", logfile, strerror(errno)); diff --git a/session.c b/session.c index f6193b98e..a37eb4ae2 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.320 2020/06/26 04:45:11 dtucker Exp $ */ +/* $OpenBSD: session.c,v 1.321 2020/07/03 06:46:41 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1501,6 +1501,9 @@ child_close_fds(struct ssh *ssh) */ endpwent(); + /* Stop directing logs to a high-numbered fd before we close it */ + log_redirect_stderr_to(NULL); + /* * Close any extra open file descriptors so that we don't have them * hanging around in clients. Note that we want to do this after -- cgit v1.2.3 From 20b5fab9f773b3d3c7f06cb15b8f69a2c081ee80 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 07:02:37 +0000 Subject: upstream: avoid tilde_expand_filename() in expanding ~/.ssh/rc - if sshd is in chroot mode, the likely absence of a password database will cause tilde_expand_filename() to fatal; ok dtucker@ OpenBSD-Commit-ID: e20aee6159e8b79190d18dba1513fc1b7c8b7ee1 --- session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/session.c b/session.c index a37eb4ae2..84d3286c4 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.321 2020/07/03 06:46:41 djm Exp $ */ +/* $OpenBSD: session.c,v 1.322 2020/07/03 07:02:37 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1212,7 +1212,7 @@ do_rc_files(struct ssh *ssh, Session *s, const char *shell) do_xauth = s->display != NULL && s->auth_proto != NULL && s->auth_data != NULL; - user_rc = tilde_expand_filename("~/" _PATH_SSH_USER_RC, getuid()); + xasprintf(&user_rc, "%s/%s", s->pw->pw_dir, _PATH_SSH_USER_RC); /* ignore _PATH_SSH_USER_RC for subsystems and admin forced commands */ if (!s->is_subsystem && options.adm_forced_command == NULL && -- cgit v1.2.3 From d8195914eb43b20b13381f4e5a74f9f8a14f0ded Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 07:17:35 +0000 Subject: upstream: revert r1.399 - the lifetime of c->mux_ctx is more complex; simply freeing it here causes other problems OpenBSD-Commit-ID: c6fee8ca94e2485faa783839541962be2834c5ed --- channels.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/channels.c b/channels.c index 14f958fa6..f23066dff 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.399 2020/07/03 05:08:41 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.400 2020/07/03 07:17:35 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -621,8 +621,6 @@ channel_free(struct ssh *ssh, Channel *c) c->path = NULL; free(c->listening_addr); c->listening_addr = NULL; - free(c->mux_ctx); - c->mux_ctx = NULL; while ((cc = TAILQ_FIRST(&c->status_confirms)) != NULL) { if (cc->abandon_cb != NULL) cc->abandon_cb(ssh, c, cc->ctx); -- cgit v1.2.3 From aa6fa4bf3023fa0e5761cd8f4b2cd015d2de74dd Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 3 Jul 2020 07:25:18 +0000 Subject: upstream: put back the mux_ctx memleak fix, but only for channels of type SSH_CHANNEL_MUX_LISTENER; Specifically SSH_CHANNEL_MUX_PROXY channels should not have this structure freed. OpenBSD-Commit-ID: f3b213ae60405f77439e2b06262f054760c9d325 --- channels.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/channels.c b/channels.c index f23066dff..71c94f6cc 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.400 2020/07/03 07:17:35 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.401 2020/07/03 07:25:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -603,6 +603,10 @@ channel_free(struct ssh *ssh, Channel *c) 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; + } if (log_level_get() >= SYSLOG_LEVEL_DEBUG3) { s = channel_open_message(ssh); -- cgit v1.2.3 From 73f20f195ad18f1cf633eb7d8be95dc1b6111eea Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sat, 4 Jul 2020 23:11:23 +1000 Subject: Wrap stdint.h in ifdef HAVE_STDINT_H. --- regress/unittests/sshsig/tests.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index d82d4897a..7365d2492 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -12,7 +12,9 @@ #include #include #include +#ifdef HAVE_STDINT_H #include +#endif #include #include #include -- cgit v1.2.3 From 03da4c2b70468f04ed1c08518ea0a70e67232739 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 15 Jul 2020 04:55:47 +0000 Subject: upstream: Use $OBJ to find key files. Fixes test when run on an obj directory (on OpenBSD) or out of tree (in Portable). OpenBSD-Regress-ID: 938fa8ac86adaa527d64a305bd2135cfbb1c0a17 --- regress/agent.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/regress/agent.sh b/regress/agent.sh index 66973de2b..a3ad1385f 100644 --- a/regress/agent.sh +++ b/regress/agent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: agent.sh,v 1.18 2020/06/26 05:12:21 djm Exp $ +# $OpenBSD: agent.sh,v 1.19 2020/07/15 04:55:47 dtucker Exp $ # Placed in the Public Domain. tid="simple agent test" @@ -197,7 +197,7 @@ check_key_present() { # delete the ed25519 key trace "delete single key by file" -${SSHADD} -qdk ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" +${SSHADD} -qdk $OBJ/ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" check_key_absent ssh-ed25519 check_key_present ssh-ed25519-cert-v01@openssh.com # Put key/cert back. @@ -206,7 +206,7 @@ ${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \ check_key_present ssh-ed25519 # Delete both key and certificate. trace "delete key/cert by file" -${SSHADD} -qd ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" +${SSHADD} -qd $OBJ/ssh-ed25519-agent || fail "ssh-add -d ed25519 failed" check_key_absent ssh-ed25519 check_key_absent ssh-ed25519-cert-v01@openssh.com # Put key/cert back. @@ -214,11 +214,11 @@ ${SSHADD} $OBJ/ssh-ed25519-agent-private >/dev/null 2>&1 || \ fail "ssh-add failed exit code $?" check_key_present ssh-ed25519 # Delete certificate via stdin -${SSHADD} -qd - < ssh-ed25519-agent-cert.pub || fail "ssh-add -d - failed" +${SSHADD} -qd - < $OBJ/ssh-ed25519-agent-cert.pub || fail "ssh-add -d - failed" check_key_present ssh-ed25519 check_key_absent ssh-ed25519-cert-v01@openssh.com # Delete key via stdin -${SSHADD} -qd - < ssh-ed25519-agent.pub || fail "ssh-add -d - failed" +${SSHADD} -qd - < $OBJ/ssh-ed25519-agent.pub || fail "ssh-add -d - failed" check_key_absent ssh-ed25519 check_key_absent ssh-ed25519-cert-v01@openssh.com -- cgit v1.2.3 From 8af4a743693ccbea3e15fc9e93edbeb610fa94f4 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Fri, 3 Jul 2020 10:10:17 +0000 Subject: upstream: don't exit the listener on send_rexec_state errors; ok djm OpenBSD-Commit-ID: 57cbd757d130d3f45b7d41310b3a15eeec137d5c --- sshd.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sshd.c b/sshd.c index 44cc3ac92..85229ac80 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.557 2020/06/18 23:34:19 djm Exp $ */ +/* $OpenBSD: sshd.c,v 1.558 2020/07/03 10:10:17 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -965,7 +965,7 @@ send_rexec_state(int fd, struct sshbuf *conf) rexec_send_rng_seed(m); #endif if (ssh_msg_send(fd, 0, m) == -1) - fatal("%s: ssh_msg_send failed", __func__); + error("%s: ssh_msg_send failed", __func__); sshbuf_free(m); sshbuf_free(inc); -- cgit v1.2.3 From cd119a5ec2bf0ed5df4daff3bd14f8f7566dafd3 Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Fri, 3 Jul 2020 10:11:33 +0000 Subject: upstream: keep ignoring HUP after fork+exec; ok djm OpenBSD-Commit-ID: 7679985a84ee5ceb09839905bb6f3ddd568749a2 --- sshd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sshd.c b/sshd.c index 85229ac80..ba01b1da7 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.558 2020/07/03 10:10:17 markus Exp $ */ +/* $OpenBSD: sshd.c,v 1.559 2020/07/03 10:11:33 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2108,6 +2108,7 @@ main(int ac, char **av) dup2(config_s[1], REEXEC_CONFIG_PASS_FD); close(config_s[1]); + ssh_signal(SIGHUP, SIG_IGN); /* avoid reset to SIG_DFL */ execv(rexec_argv[0], rexec_argv); /* Reexec has failed, fall back and continue */ -- cgit v1.2.3 From b0c1e8384d5e136ebdf895d1434aea7dd8661a1c Mon Sep 17 00:00:00 2001 From: "markus@openbsd.org" Date: Fri, 3 Jul 2020 10:12:26 +0000 Subject: upstream: update setproctitle after re-exec; ok djm OpenBSD-Commit-ID: bc92d122f9184ec2a9471ade754b80edd034ce8b --- sshd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sshd.c b/sshd.c index ba01b1da7..d9a159f6a 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.559 2020/07/03 10:11:33 markus Exp $ */ +/* $OpenBSD: sshd.c,v 1.560 2020/07/03 10:12:26 markus Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1726,6 +1726,7 @@ main(int ac, char **av) if ((cfg = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); if (rexeced_flag) { + setproctitle("%s", "[rexeced]"); recv_rexec_state(REEXEC_CONFIG_PASS_FD, cfg); if (!debug_flag) { startup_pipe = dup(REEXEC_STARTUP_PIPE_FD); -- cgit v1.2.3 From 6d755706a0059eb9e2d63517f288b75cbc3b4701 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Sun, 5 Jul 2020 23:59:45 +0000 Subject: upstream: some language improvements; ok markus OpenBSD-Commit-ID: 939d787d571b4d5da50b3b721fd0b2ac236acaa8 --- PROTOCOL | 6 +++--- channels.h | 6 +++--- compat.c | 18 +++++++++--------- kex.c | 6 +++--- match.c | 12 ++++++------ match.h | 6 +++--- monitor.c | 4 ++-- mux.c | 14 +++++++------- packet.c | 4 ++-- readconf.c | 12 ++++++------ servconf.c | 22 +++++++++++----------- servconf.h | 8 ++++---- session.c | 20 ++++++++++---------- ssh-agent.c | 8 ++++---- ssh.c | 12 ++++++------ 15 files changed, 79 insertions(+), 79 deletions(-) diff --git a/PROTOCOL b/PROTOCOL index c702fca45..ecdacb9dc 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -140,7 +140,7 @@ window space and may be sent even if no window space is available. NB. due to certain broken SSH implementations aborting upon receipt of this message (in contravention of RFC4254 section 5.4), this message is only sent to OpenSSH peers (identified by banner). -Other SSH implementations may be whitelisted to receive this message +Other SSH implementations may be listed to receive this message upon request. 2.2. connection: disallow additional sessions extension @@ -169,7 +169,7 @@ Note that this is not a general defence against compromised clients NB. due to certain broken SSH implementations aborting upon receipt of this message, the no-more-sessions request is only sent to OpenSSH servers (identified by banner). Other SSH implementations may be -whitelisted to receive this message upon request. +listed to receive this message upon request. 2.3. connection: Tunnel forward extension "tun@openssh.com" @@ -496,4 +496,4 @@ 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.37 2020/02/21 00:04:43 dtucker Exp $ +$OpenBSD: PROTOCOL,v 1.38 2020/07/05 23:59:45 djm Exp $ diff --git a/channels.h b/channels.h index c8ae0d904..ee818880e 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.133 2020/01/25 22:49:38 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.134 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen @@ -52,11 +52,11 @@ #define SSH_CHANNEL_DYNAMIC 13 #define SSH_CHANNEL_ZOMBIE 14 /* Almost dead. */ #define SSH_CHANNEL_MUX_LISTENER 15 /* Listener for mux conn. */ -#define SSH_CHANNEL_MUX_CLIENT 16 /* Conn. to mux slave */ +#define SSH_CHANNEL_MUX_CLIENT 16 /* Conn. to mux client */ #define SSH_CHANNEL_ABANDONED 17 /* Abandoned session, eg mux */ #define SSH_CHANNEL_UNIX_LISTENER 18 /* Listening on a domain socket. */ #define SSH_CHANNEL_RUNIX_LISTENER 19 /* Listening to a R-style domain socket. */ -#define SSH_CHANNEL_MUX_PROXY 20 /* proxy channel for mux-slave */ +#define SSH_CHANNEL_MUX_PROXY 20 /* proxy channel for mux-client */ #define SSH_CHANNEL_RDYNAMIC_OPEN 21 /* reverse SOCKS, parsing request */ #define SSH_CHANNEL_RDYNAMIC_FINISH 22 /* reverse SOCKS, finishing connect */ #define SSH_CHANNEL_MAX_TYPE 23 diff --git a/compat.c b/compat.c index 7c0e1c230..dec8e7e93 100644 --- a/compat.c +++ b/compat.c @@ -1,4 +1,4 @@ -/* $OpenBSD: compat.c,v 1.114 2020/06/01 07:11:38 dtucker Exp $ */ +/* $OpenBSD: compat.c,v 1.115 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright (c) 1999, 2000, 2001, 2002 Markus Friedl. All rights reserved. * @@ -163,8 +163,8 @@ compat_cipher_proposal(char *cipher_prop) if (!(datafellows & SSH_BUG_BIGENDIANAES)) return cipher_prop; debug2("%s: original cipher proposal: %s", __func__, cipher_prop); - if ((cipher_prop = match_filter_blacklist(cipher_prop, "aes*")) == NULL) - fatal("match_filter_blacklist failed"); + if ((cipher_prop = match_filter_denylist(cipher_prop, "aes*")) == NULL) + fatal("match_filter_denylist failed"); debug2("%s: compat cipher proposal: %s", __func__, cipher_prop); if (*cipher_prop == '\0') fatal("No supported ciphers found"); @@ -177,8 +177,8 @@ compat_pkalg_proposal(char *pkalg_prop) if (!(datafellows & SSH_BUG_RSASIGMD5)) return pkalg_prop; debug2("%s: original public key proposal: %s", __func__, pkalg_prop); - if ((pkalg_prop = match_filter_blacklist(pkalg_prop, "ssh-rsa")) == NULL) - fatal("match_filter_blacklist failed"); + if ((pkalg_prop = match_filter_denylist(pkalg_prop, "ssh-rsa")) == NULL) + fatal("match_filter_denylist failed"); debug2("%s: compat public key proposal: %s", __func__, pkalg_prop); if (*pkalg_prop == '\0') fatal("No supported PK algorithms found"); @@ -192,14 +192,14 @@ compat_kex_proposal(char *p) return p; debug2("%s: original KEX proposal: %s", __func__, p); if ((datafellows & SSH_BUG_CURVE25519PAD) != 0) - if ((p = match_filter_blacklist(p, + if ((p = match_filter_denylist(p, "curve25519-sha256@libssh.org")) == NULL) - fatal("match_filter_blacklist failed"); + fatal("match_filter_denylist failed"); if ((datafellows & SSH_OLD_DHGEX) != 0) { - if ((p = match_filter_blacklist(p, + if ((p = match_filter_denylist(p, "diffie-hellman-group-exchange-sha256," "diffie-hellman-group-exchange-sha1")) == NULL) - fatal("match_filter_blacklist failed"); + fatal("match_filter_denylist failed"); } debug2("%s: compat KEX proposal: %s", __func__, p); if (*p == '\0') diff --git a/kex.c b/kex.c index 09c7258e0..aecb9394d 100644 --- a/kex.c +++ b/kex.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kex.c,v 1.158 2020/03/13 04:01:56 djm Exp $ */ +/* $OpenBSD: kex.c,v 1.159 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * @@ -247,7 +247,7 @@ kex_assemble_names(char **listp, const char *def, const char *all) list = tmp; } else if (*list == '-') { /* Remove names from default list */ - if ((*listp = match_filter_blacklist(def, list + 1)) == NULL) { + if ((*listp = match_filter_denylist(def, list + 1)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto fail; } @@ -284,7 +284,7 @@ kex_assemble_names(char **listp, const char *def, const char *all) goto fail; } free(matching); - if ((matching = match_filter_whitelist(all, cp)) == NULL) { + if ((matching = match_filter_allowlist(all, cp)) == NULL) { r = SSH_ERR_ALLOC_FAIL; goto fail; } diff --git a/match.c b/match.c index 3a8fa9d78..927565c18 100644 --- a/match.c +++ b/match.c @@ -1,4 +1,4 @@ -/* $OpenBSD: match.c,v 1.41 2019/11/13 04:47:52 deraadt Exp $ */ +/* $OpenBSD: match.c,v 1.42 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -309,13 +309,13 @@ match_list(const char *client, const char *server, u_int *next) /* * Filter proposal using pattern-list filter. - * "blacklist" determines sense of filter: + * "denylist" determines sense of filter: * non-zero indicates that items matching filter should be excluded. * zero indicates that only items matching filter should be included. * returns NULL on allocation error, otherwise caller must free result. */ static char * -filter_list(const char *proposal, const char *filter, int blacklist) +filter_list(const char *proposal, const char *filter, int denylist) { size_t len = strlen(proposal) + 1; char *fix_prop = malloc(len); @@ -333,7 +333,7 @@ filter_list(const char *proposal, const char *filter, int blacklist) *fix_prop = '\0'; while ((cp = strsep(&tmp, ",")) != NULL) { r = match_pattern_list(cp, filter, 0); - if ((blacklist && r != 1) || (!blacklist && r == 1)) { + if ((denylist && r != 1) || (!denylist && r == 1)) { if (*fix_prop != '\0') strlcat(fix_prop, ",", len); strlcat(fix_prop, cp, len); @@ -348,7 +348,7 @@ filter_list(const char *proposal, const char *filter, int blacklist) * the 'filter' pattern list. Caller must free returned string. */ char * -match_filter_blacklist(const char *proposal, const char *filter) +match_filter_denylist(const char *proposal, const char *filter) { return filter_list(proposal, filter, 1); } @@ -358,7 +358,7 @@ match_filter_blacklist(const char *proposal, const char *filter) * the 'filter' pattern list. Caller must free returned string. */ char * -match_filter_whitelist(const char *proposal, const char *filter) +match_filter_allowlist(const char *proposal, const char *filter) { return filter_list(proposal, filter, 0); } diff --git a/match.h b/match.h index 3a8a6ecdc..312ca6e16 100644 --- a/match.h +++ b/match.h @@ -1,4 +1,4 @@ -/* $OpenBSD: match.h,v 1.19 2019/03/06 22:14:23 dtucker Exp $ */ +/* $OpenBSD: match.h,v 1.20 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen @@ -21,8 +21,8 @@ int match_hostname(const char *, const char *); int match_host_and_ip(const char *, const char *, const char *); int match_user(const char *, const char *, const char *, const char *); char *match_list(const char *, const char *, u_int *); -char *match_filter_blacklist(const char *, const char *); -char *match_filter_whitelist(const char *, const char *); +char *match_filter_denylist(const char *, const char *); +char *match_filter_allowlist(const char *, const char *); /* addrmatch.c */ int addr_match_list(const char *, const char *); diff --git a/monitor.c b/monitor.c index b6e855d5d..325ad95e0 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.210 2020/03/13 03:17:07 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.211 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -1568,7 +1568,7 @@ mm_answer_pty(struct ssh *ssh, int sock, struct sshbuf *m) if (fd0 != 0) error("%s: fd0 %d != 0", __func__, fd0); - /* slave is not needed */ + /* only need pty master side */ close(s->ttyfd); s->ttyfd = s->ptyfd; /* no need to dup() because nobody closes ptyfd */ diff --git a/mux.c b/mux.c index fb31ad448..376f0d711 100644 --- a/mux.c +++ b/mux.c @@ -1,4 +1,4 @@ -/* $OpenBSD: mux.c,v 1.82 2020/04/30 17:12:20 markus Exp $ */ +/* $OpenBSD: mux.c,v 1.83 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright (c) 2002-2008 Damien Miller * @@ -187,7 +187,7 @@ static const struct { { 0, NULL } }; -/* Cleanup callback fired on closure of mux slave _session_ channel */ +/* Cleanup callback fired on closure of mux client _session_ channel */ /* ARGSUSED */ static void mux_master_session_cleanup_cb(struct ssh *ssh, int cid, void *unused) @@ -209,7 +209,7 @@ mux_master_session_cleanup_cb(struct ssh *ssh, int cid, void *unused) channel_cancel_cleanup(ssh, c->self); } -/* Cleanup callback fired on closure of mux slave _control_ channel */ +/* Cleanup callback fired on closure of mux client _control_ channel */ /* ARGSUSED */ static void mux_master_control_cleanup_cb(struct ssh *ssh, int cid, void *unused) @@ -287,7 +287,7 @@ mux_master_process_hello(struct ssh *ssh, u_int rid, "(expected %u)", __func__, ver, SSHMUX_VER); return -1; } - debug2("%s: channel %d slave version %u", __func__, c->self, ver); + debug2("%s: channel %d client version %u", __func__, c->self, ver); /* No extensions are presently defined */ while (sshbuf_len(m) > 0) { @@ -401,7 +401,7 @@ mux_master_process_new_session(struct ssh *ssh, u_int rid, /* Gather fds from client */ for(i = 0; i < 3; i++) { if ((new_fd[i] = mm_receive_fd(c->sock)) == -1) { - error("%s: failed to receive fd %d from slave", + error("%s: failed to receive fd %d from client", __func__, i); for (j = 0; j < i; j++) close(new_fd[j]); @@ -994,7 +994,7 @@ mux_master_process_stdio_fwd(struct ssh *ssh, u_int rid, /* Gather fds from client */ for(i = 0; i < 2; i++) { if ((new_fd[i] = mm_receive_fd(c->sock)) == -1) { - error("%s: failed to receive fd %d from slave", + error("%s: failed to receive fd %d from client", __func__, i); for (j = 0; j < i; j++) close(new_fd[j]); @@ -1154,7 +1154,7 @@ mux_master_process_proxy(struct ssh *ssh, u_int rid, return 0; } -/* Channel callbacks fired on read/write from mux slave fd */ +/* Channel callbacks fired on read/write from mux client fd */ static int mux_master_read_cb(struct ssh *ssh, Channel *c) { diff --git a/packet.c b/packet.c index 042ec7c4f..00e3180cb 100644 --- a/packet.c +++ b/packet.c @@ -1,4 +1,4 @@ -/* $OpenBSD: packet.c,v 1.295 2020/07/01 16:28:31 markus Exp $ */ +/* $OpenBSD: packet.c,v 1.296 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2450,7 +2450,7 @@ ssh_packet_set_state(struct ssh *ssh, struct sshbuf *m) (r = sshbuf_get_u64(m, &state->p_read.bytes)) != 0) return r; /* - * We set the time here so that in post-auth privsep slave we + * We set the time here so that in post-auth privsep child we * count from the completion of the authentication. */ state->rekey_time = monotime(); diff --git a/readconf.c b/readconf.c index c0595a52b..9e597748c 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.331 2020/05/29 04:25:40 dtucker Exp $ */ +/* $OpenBSD: readconf.c,v 1.332 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2221,11 +2221,11 @@ fill_default_options(Options * options) all_key = sshkey_alg_list(0, 0, 1, ','); all_sig = sshkey_alg_list(0, 1, 1, ','); /* remove unsupported algos from default lists */ - def_cipher = match_filter_whitelist(KEX_CLIENT_ENCRYPT, all_cipher); - def_mac = match_filter_whitelist(KEX_CLIENT_MAC, all_mac); - def_kex = match_filter_whitelist(KEX_CLIENT_KEX, all_kex); - def_key = match_filter_whitelist(KEX_DEFAULT_PK_ALG, all_key); - def_sig = match_filter_whitelist(SSH_ALLOWED_CA_SIGALGS, all_sig); + def_cipher = match_filter_allowlist(KEX_CLIENT_ENCRYPT, all_cipher); + def_mac = match_filter_allowlist(KEX_CLIENT_MAC, all_mac); + def_kex = match_filter_allowlist(KEX_CLIENT_KEX, all_kex); + def_key = match_filter_allowlist(KEX_DEFAULT_PK_ALG, all_key); + def_sig = match_filter_allowlist(SSH_ALLOWED_CA_SIGALGS, all_sig); #define ASSEMBLE(what, defaults, all) \ do { \ if ((r = kex_assemble_names(&options->what, \ diff --git a/servconf.c b/servconf.c index 22cb9583f..67581ccf2 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.366 2020/06/24 15:09:53 markus Exp $ */ +/* $OpenBSD: servconf.c,v 1.367 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -141,7 +141,7 @@ initialize_server_options(ServerOptions *options) options->challenge_response_authentication = -1; options->permit_empty_passwd = -1; options->permit_user_env = -1; - options->permit_user_env_whitelist = NULL; + options->permit_user_env_allowlist = NULL; options->compression = -1; options->rekey_limit = -1; options->rekey_interval = -1; @@ -213,11 +213,11 @@ assemble_algorithms(ServerOptions *o) all_key = sshkey_alg_list(0, 0, 1, ','); all_sig = sshkey_alg_list(0, 1, 1, ','); /* remove unsupported algos from default lists */ - def_cipher = match_filter_whitelist(KEX_SERVER_ENCRYPT, all_cipher); - def_mac = match_filter_whitelist(KEX_SERVER_MAC, all_mac); - def_kex = match_filter_whitelist(KEX_SERVER_KEX, all_kex); - def_key = match_filter_whitelist(KEX_DEFAULT_PK_ALG, all_key); - def_sig = match_filter_whitelist(SSH_ALLOWED_CA_SIGALGS, all_sig); + def_cipher = match_filter_allowlist(KEX_SERVER_ENCRYPT, all_cipher); + def_mac = match_filter_allowlist(KEX_SERVER_MAC, all_mac); + def_kex = match_filter_allowlist(KEX_SERVER_KEX, all_kex); + def_key = match_filter_allowlist(KEX_DEFAULT_PK_ALG, all_key); + def_sig = match_filter_allowlist(SSH_ALLOWED_CA_SIGALGS, all_sig); #define ASSEMBLE(what, defaults, all) \ do { \ if ((r = kex_assemble_names(&o->what, defaults, all)) != 0) \ @@ -390,7 +390,7 @@ fill_default_server_options(ServerOptions *options) options->permit_empty_passwd = 0; if (options->permit_user_env == -1) { options->permit_user_env = 0; - options->permit_user_env_whitelist = NULL; + options->permit_user_env_allowlist = NULL; } if (options->compression == -1) #ifdef WITH_ZLIB @@ -1630,7 +1630,7 @@ process_server_config_line_depth(ServerOptions *options, char *line, case sPermitUserEnvironment: intptr = &options->permit_user_env; - charptr = &options->permit_user_env_whitelist; + charptr = &options->permit_user_env_allowlist; arg = strdelim(&cp); if (!arg || *arg == '\0') fatal("%s line %d: missing argument.", @@ -2925,11 +2925,11 @@ dump_config(ServerOptions *o) } printf("\n"); - if (o->permit_user_env_whitelist == NULL) { + if (o->permit_user_env_allowlist == NULL) { dump_cfg_fmtint(sPermitUserEnvironment, o->permit_user_env); } else { printf("permituserenvironment %s\n", - o->permit_user_env_whitelist); + o->permit_user_env_allowlist); } printf("pubkeyauthoptions"); diff --git a/servconf.h b/servconf.h index a420f398d..8422f3f51 100644 --- a/servconf.h +++ b/servconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.h,v 1.144 2020/04/17 03:30:05 djm Exp $ */ +/* $OpenBSD: servconf.h,v 1.145 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen @@ -146,7 +146,7 @@ typedef struct { int permit_empty_passwd; /* If false, do not permit empty * passwords. */ int permit_user_env; /* If true, read ~/.ssh/environment */ - char *permit_user_env_whitelist; /* pattern-list whitelist */ + char *permit_user_env_allowlist; /* pattern-list of allowed env names */ int compression; /* If true, compression is allowed */ int allow_tcp_forwarding; /* One of FORWARD_* */ int allow_streamlocal_forwarding; /* One of FORWARD_* */ @@ -250,7 +250,7 @@ TAILQ_HEAD(include_list, include_item); /* * These are string config options that must be copied between the * Match sub-config and the main config, and must be sent from the - * privsep slave to the privsep master. We use a macro to ensure all + * privsep child to the privsep master. We use a macro to ensure all * the options are copied and the copies are done in the correct order. * * NB. an option must appear in servconf.c:copy_set_server_options() or @@ -269,7 +269,7 @@ TAILQ_HEAD(include_list, include_item); M_CP_STROPT(pubkey_key_types); \ M_CP_STROPT(ca_sign_algorithms); \ M_CP_STROPT(routing_domain); \ - M_CP_STROPT(permit_user_env_whitelist); \ + M_CP_STROPT(permit_user_env_allowlist); \ M_CP_STRARRAYOPT(authorized_keys_files, num_authkeys_files); \ M_CP_STRARRAYOPT(allow_users, num_allow_users); \ M_CP_STRARRAYOPT(deny_users, num_deny_users); \ diff --git a/session.c b/session.c index 84d3286c4..ede983564 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.322 2020/07/03 07:02:37 djm Exp $ */ +/* $OpenBSD: session.c,v 1.323 2020/07/05 23:59:45 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -644,7 +644,7 @@ do_exec_pty(struct ssh *ssh, Session *s, const char *command) s->pid = pid; - /* Parent. Close the slave side of the pseudo tty. */ + /* Parent. Close the child side of the pseudo tty. */ close(ttyfd); /* Enter interactive session. */ @@ -843,12 +843,12 @@ check_quietlogin(Session *s, const char *command) * into the environment. If the file does not exist, this does nothing. * Otherwise, it must consist of empty lines, comments (line starts with '#') * and assignments of the form name=value. No other forms are allowed. - * If whitelist is not NULL, then it is interpreted as a pattern list and + * If allowlist is not NULL, then it is interpreted as a pattern list and * only variable names that match it will be accepted. */ static void read_environment_file(char ***env, u_int *envsize, - const char *filename, const char *whitelist) + const char *filename, const char *allowlist) { FILE *f; char *line = NULL, *cp, *value; @@ -881,8 +881,8 @@ read_environment_file(char ***env, u_int *envsize, */ *value = '\0'; value++; - if (whitelist != NULL && - match_pattern_list(cp, whitelist, 0) != 1) + if (allowlist != NULL && + match_pattern_list(cp, allowlist, 0) != 1) continue; child_set_env(env, envsize, cp, value); } @@ -1111,10 +1111,10 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) cp = strchr(ocp, '='); if (*cp == '=') { *cp = '\0'; - /* Apply PermitUserEnvironment whitelist */ - if (options.permit_user_env_whitelist == NULL || + /* Apply PermitUserEnvironment allowlist */ + if (options.permit_user_env_allowlist == NULL || match_pattern_list(ocp, - options.permit_user_env_whitelist, 0) == 1) + options.permit_user_env_allowlist, 0) == 1) child_set_env(&env, &envsize, ocp, cp + 1); } @@ -1127,7 +1127,7 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) snprintf(buf, sizeof buf, "%.200s/.ssh/environment", pw->pw_dir); read_environment_file(&env, &envsize, buf, - options.permit_user_env_whitelist); + options.permit_user_env_allowlist); } #ifdef USE_PAM diff --git a/ssh-agent.c b/ssh-agent.c index 06efe3c6f..5f7ac8b91 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.261 2020/06/22 06:37:38 jmc Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.262 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -93,8 +93,8 @@ #include "ssh-pkcs11.h" #include "sk-api.h" -#ifndef DEFAULT_PROVIDER_WHITELIST -# define DEFAULT_PROVIDER_WHITELIST "/usr/lib*/*,/usr/local/lib*/*" +#ifndef DEFAULT_ALLOWED_PROVIDERS +# define DEFAULT_ALLOWED_PROVIDERS "/usr/lib*/*,/usr/local/lib*/*" #endif /* Maximum accepted message length */ @@ -1359,7 +1359,7 @@ main(int ac, char **av) usage(); if (allowed_providers == NULL) - allowed_providers = xstrdup(DEFAULT_PROVIDER_WHITELIST); + allowed_providers = xstrdup(DEFAULT_ALLOWED_PROVIDERS); if (ac == 0 && !c_flag && !s_flag) { shell = getenv("SHELL"); diff --git a/ssh.c b/ssh.c index a767a1839..b13783d43 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.530 2020/06/26 05:02:03 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.531 2020/07/05 23:59:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -137,11 +137,11 @@ int stdin_null_flag = 0; /* * Flag indicating that the current process should be backgrounded and - * a new slave launched in the foreground for ControlPersist. + * a new mux-client launched in the foreground for ControlPersist. */ int need_controlpersist_detach = 0; -/* Copies of flags for ControlPersist foreground slave */ +/* Copies of flags for ControlPersist foreground mux-client */ int ostdin_null_flag, ono_shell_flag, otty_flag, orequest_tty; /* @@ -1691,7 +1691,7 @@ control_persist_detach(void) /* Child: master process continues mainloop */ break; default: - /* Parent: set up mux slave to connect to backgrounded master */ + /* Parent: set up mux client to connect to backgrounded master */ debug2("%s: background process is %ld", __func__, (long)pid); stdin_null_flag = ostdin_null_flag; options.request_tty = orequest_tty; @@ -2070,9 +2070,9 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) /* * If we are in control persist mode and have a working mux listen * socket, then prepare to background ourselves and have a foreground - * client attach as a control slave. + * client attach as a control client. * NB. we must save copies of the flags that we override for - * the backgrounding, since we defer attachment of the slave until + * the backgrounding, since we defer attachment of the client until * after the connection is fully established (in particular, * async rfwd replies have been received for ExitOnForwardFailure). */ -- cgit v1.2.3 From 6368022cd4dd508671c4999a59ec5826df098530 Mon Sep 17 00:00:00 2001 From: "deraadt@openbsd.org" Date: Tue, 7 Jul 2020 02:47:21 +0000 Subject: upstream: correct recently broken comments OpenBSD-Commit-ID: 964d9a88f7de1d0eedd3f8070b43fb6e426351f1 --- monitor.c | 4 ++-- session.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/monitor.c b/monitor.c index 325ad95e0..0107a7eba 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.211 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.212 2020/07/07 02:47:21 deraadt Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -1568,7 +1568,7 @@ mm_answer_pty(struct ssh *ssh, int sock, struct sshbuf *m) if (fd0 != 0) error("%s: fd0 %d != 0", __func__, fd0); - /* only need pty master side */ + /* slave side of pty is not needed */ close(s->ttyfd); s->ttyfd = s->ptyfd; /* no need to dup() because nobody closes ptyfd */ diff --git a/session.c b/session.c index ede983564..3f7488cde 100644 --- a/session.c +++ b/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.323 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: session.c,v 1.324 2020/07/07 02:47:21 deraadt Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -644,7 +644,7 @@ do_exec_pty(struct ssh *ssh, Session *s, const char *command) s->pid = pid; - /* Parent. Close the child side of the pseudo tty. */ + /* Parent. Close the slave side of the pseudo tty. */ close(ttyfd); /* Enter interactive session. */ -- cgit v1.2.3 From aaa8b609a7b332be836cd9a3b782422254972777 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 14 Jul 2020 23:57:01 +0000 Subject: upstream: allow some additional control over the use of ssh-askpass via $SSH_ASKPASS_REQUIRE, including force-enable/disable. bz#69 ok markus@ OpenBSD-Commit-ID: 3a1e6cbbf6241ddc4405c4246caa2c249f149eb2 --- readpass.c | 25 ++++++++++++++++++++----- ssh-add.1 | 30 +++++++++++++++++++++++------- ssh.1 | 23 +++++++++++++++++++++-- ssh.h | 7 ++++++- 4 files changed, 70 insertions(+), 15 deletions(-) diff --git a/readpass.c b/readpass.c index 974d67f0b..69edce306 100644 --- a/readpass.c +++ b/readpass.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readpass.c,v 1.61 2020/01/23 07:10:22 dtucker Exp $ */ +/* $OpenBSD: readpass.c,v 1.62 2020/07/14 23:57:01 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -123,11 +123,26 @@ char * read_passphrase(const char *prompt, int flags) { char cr = '\r', *askpass = NULL, *ret, buf[1024]; - int rppflags, use_askpass = 0, ttyfd; + int rppflags, ttyfd, use_askpass = 0, allow_askpass = 0; const char *askpass_hint = NULL; + const char *s; + + if ((s = getenv("DISPLAY")) != NULL) + allow_askpass = *s != '\0'; + if ((s = getenv(SSH_ASKPASS_REQUIRE_ENV)) != NULL) { + if (strcasecmp(s, "force") == 0) { + use_askpass = 1; + allow_askpass = 1; + } else if (strcasecmp(s, "prefer") == 0) + use_askpass = allow_askpass; + else if (strcasecmp(s, "never") == 0) + allow_askpass = 0; + } rppflags = (flags & RP_ECHO) ? RPP_ECHO_ON : RPP_ECHO_OFF; - if (flags & RP_USE_ASKPASS) + if (use_askpass) + debug("%s: requested to askpass", __func__); + else if (flags & RP_USE_ASKPASS) use_askpass = 1; else if (flags & RP_ALLOW_STDIN) { if (!isatty(STDIN_FILENO)) { @@ -153,10 +168,10 @@ read_passphrase(const char *prompt, int flags) } } - if ((flags & RP_USE_ASKPASS) && getenv("DISPLAY") == NULL) + if ((flags & RP_USE_ASKPASS) && !allow_askpass) return (flags & RP_ALLOW_EOF) ? NULL : xstrdup(""); - if (use_askpass && getenv("DISPLAY")) { + if (use_askpass && allow_askpass) { if (getenv(SSH_ASKPASS_ENV)) askpass = getenv(SSH_ASKPASS_ENV); else diff --git a/ssh-add.1 b/ssh-add.1 index f3db1956e..2786df514 100644 --- a/ssh-add.1 +++ b/ssh-add.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-add.1,v 1.80 2020/06/26 05:04:07 djm Exp $ +.\" $OpenBSD: ssh-add.1,v 1.81 2020/07/14 23:57:01 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: June 26 2020 $ +.Dd $Mdocdate: July 14 2020 $ .Dt SSH-ADD 1 .Os .Sh NAME @@ -174,7 +174,7 @@ Lock the agent with a password. .El .Sh ENVIRONMENT .Bl -tag -width Ds -.It Ev "DISPLAY" and "SSH_ASKPASS" +.It Ev "DISPLAY", "SSH_ASKPASS" and "SSH_ASKPASS_REQUIRE" If .Nm needs a passphrase, it will read the passphrase from the current @@ -195,10 +195,26 @@ This is particularly useful when calling from a .Pa .xsession or related script. -(Note that on some machines it -may be necessary to redirect the input from -.Pa /dev/null -to make this work.) +.Pp +.Ev SSH_ASKPASS_REQUIRE +allows further control over the use of an askpass program. +If this variable is set to +.Dq never +then +.Nm +will never attempt to use one. +If it is set to +.Dq prefer , +then +.Nm +will prefer to use the askpass program instead of the TTY when requesting +passwords. +Finally, if the variable is set to +.Dq force , +then the askpass program will be used for all passphrase input regardless +of whether +.Ev DISPLAY +is set. .It Ev SSH_AUTH_SOCK Identifies the path of a .Ux Ns -domain diff --git a/ssh.1 b/ssh.1 index dce5f404b..7b9d3422b 100644 --- a/ssh.1 +++ b/ssh.1 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.412 2020/04/17 03:34:42 djm Exp $ -.Dd $Mdocdate: April 17 2020 $ +.\" $OpenBSD: ssh.1,v 1.413 2020/07/14 23:57:01 djm Exp $ +.Dd $Mdocdate: July 14 2020 $ .Dt SSH 1 .Os .Sh NAME @@ -1409,6 +1409,25 @@ or related script. may be necessary to redirect the input from .Pa /dev/null to make this work.) +.It Ev SSH_ASKPASS_REQUIRE +allows further control over the use of an askpass program. +If this variable is set to +.Dq never +then +.Nm +will never attempt to use one. +If it is set to +.Dq prefer , +then +.Nm +will prefer to use the askpass program instead of the TTY when requesting +passwords. +Finally, if the variable is set to +.Dq force , +then the askpass program will be used for all passphrase input regardless +of whether +.Ev DISPLAY +is set. .It Ev SSH_AUTH_SOCK Identifies the path of a .Ux Ns -domain diff --git a/ssh.h b/ssh.h index dda6f617e..8110c0602 100644 --- a/ssh.h +++ b/ssh.h @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.h,v 1.89 2018/12/27 03:25:25 djm Exp $ */ +/* $OpenBSD: ssh.h,v 1.90 2020/07/14 23:57:01 djm Exp $ */ /* * Author: Tatu Ylonen @@ -67,6 +67,11 @@ */ #define SSH_ASKPASS_ENV "SSH_ASKPASS" +/* + * Environment variable to control whether or not askpass is used. + */ +#define SSH_ASKPASS_REQUIRE_ENV "SSH_ASKPASS_REQUIRE" + /* * Force host key length and server key length to differ by at least this * many bits. This is to make double encryption with rsaref work. -- cgit v1.2.3 From fec89f32a84fd0aa1afc81deec80a460cbaf451a Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 15 Jul 2020 04:27:34 +0000 Subject: upstream: Add default for number of rounds (-a). ok djm@ OpenBSD-Commit-ID: cb7e9aa04ace01a98e63e4bd77f34a42ab169b15 --- ssh-keygen.1 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 059c1b034..9b4d9337d 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.203 2020/04/03 02:26:56 djm Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.204 2020/07/15 04:27:34 dtucker Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: April 3 2020 $ +.Dd $Mdocdate: July 15 2020 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME @@ -270,6 +270,7 @@ When saving a private key, this option specifies the number of KDF (key derivation function) rounds used. Higher numbers result in slower passphrase verification and increased resistance to brute-force password cracking (should the keys be stolen). +The default is 16 rounds. .It Fl B Show the bubblebabble digest of specified private or public key file. .It Fl b Ar bits -- cgit v1.2.3 From d7e71be4fd57b7c7e620d733cdf2333b27bfa924 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Wed, 15 Jul 2020 15:30:43 +1000 Subject: Adjust portable code to match changes in 939d787d, --- session.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/session.c b/session.c index 3f7488cde..27ca8a104 100644 --- a/session.c +++ b/session.c @@ -924,7 +924,7 @@ read_etc_default_login(char ***env, u_int *envsize, uid_t uid) * interested in. */ read_environment_file(&tmpenv, &tmpenvsize, "/etc/default/login", - options.permit_user_env_whitelist); + options.permit_user_env_allowlist); if (tmpenv == NULL) return; @@ -1091,7 +1091,7 @@ do_setup_env(struct ssh *ssh, Session *s, const char *shell) if ((cp = getenv("AUTHSTATE")) != NULL) child_set_env(&env, &envsize, "AUTHSTATE", cp); read_environment_file(&env, &envsize, "/etc/environment", - options.permit_user_env_whitelist); + options.permit_user_env_allowlist); } #endif #ifdef KRB5 -- cgit v1.2.3 From f1a4798941b4372bfe5e46f1c0f8672fe692d9e4 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 15 Jul 2020 05:36:50 +0000 Subject: upstream: Update test to match recent change in match.c OpenBSD-Regress-ID: 965bda1f95f09a765050707340c73ad755f41167 --- regress/unittests/match/tests.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/regress/unittests/match/tests.c b/regress/unittests/match/tests.c index 3d9af55f2..fdadb6b9c 100644 --- a/regress/unittests/match/tests.c +++ b/regress/unittests/match/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.5 2018/07/04 13:51:45 djm Exp $ */ +/* $OpenBSD: tests.c,v 1.6 2020/07/15 05:36:50 dtucker Exp $ */ /* * Regress test for matching functions * @@ -105,7 +105,7 @@ tests(void) #define CHECK_FILTER(string,filter,expected) \ do { \ - char *result = match_filter_blacklist((string), (filter)); \ + char *result = match_filter_allowlist((string), (filter)); \ ASSERT_STRING_EQ(result, expected); \ free(result); \ } while (0) -- cgit v1.2.3 From 9c9ddc1391d6af8d09580a2424ab467d0a5df3c7 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 15 Jul 2020 06:43:16 +0000 Subject: upstream: Fix previous by calling the correct function. OpenBSD-Regress-ID: 821cdd1dff9c502cceff4518b6afcb81767cad5a --- regress/unittests/match/tests.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/regress/unittests/match/tests.c b/regress/unittests/match/tests.c index fdadb6b9c..4fefaf4f3 100644 --- a/regress/unittests/match/tests.c +++ b/regress/unittests/match/tests.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tests.c,v 1.6 2020/07/15 05:36:50 dtucker Exp $ */ +/* $OpenBSD: tests.c,v 1.7 2020/07/15 06:43:16 dtucker Exp $ */ /* * Regress test for matching functions * @@ -105,7 +105,7 @@ tests(void) #define CHECK_FILTER(string,filter,expected) \ do { \ - char *result = match_filter_allowlist((string), (filter)); \ + char *result = match_filter_denylist((string), (filter)); \ ASSERT_STRING_EQ(result, expected); \ free(result); \ } while (0) -- cgit v1.2.3 From 5b56bd0affea7b02b540bdbc4d1d271b0e4fc885 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 17 Jul 2020 13:15:50 +1000 Subject: detect Linux/X32 systems This is a frankenstein monster of AMD64 instructions/calling conventions but with a 4GB address space. Allegedly deprecated but people still run into it causing weird sandbox failures, e.g. bz#3085 --- configure.ac | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/configure.ac b/configure.ac index c03db2732..ff7417354 100644 --- a/configure.ac +++ b/configure.ac @@ -522,6 +522,8 @@ SPP_MSG="no" # the --with-solaris-privs option and --with-sandbox=solaris). SOLARIS_PRIVS="no" +AC_CHECK_SIZEOF([size_t]) + # Check for some target-specific stuff case "$host" in *-*-aix*) @@ -864,6 +866,10 @@ main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) case "$host" in x86_64-*) seccomp_audit_arch=AUDIT_ARCH_X86_64 + # X32: AMD64 instructions in 32bit address space. + if test "x$ac_cv_sizeof_size_t" = "x4" ; then + seccomp_audit_arch=AUDIT_ARCH_I386 + fi ;; i*86-*) seccomp_audit_arch=AUDIT_ARCH_I386 -- cgit v1.2.3 From 69924a92c3af7b99a7541aa544a2334ec0fb092c Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Wed, 15 Jul 2020 05:40:05 +0000 Subject: upstream: start sentence with capital letter; OpenBSD-Commit-ID: ab06581d51b2b4cc1b4aab781f7f3cfa56cad973 --- ssh.1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ssh.1 b/ssh.1 index 7b9d3422b..555317887 100644 --- a/ssh.1 +++ b/ssh.1 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh.1,v 1.413 2020/07/14 23:57:01 djm Exp $ -.Dd $Mdocdate: July 14 2020 $ +.\" $OpenBSD: ssh.1,v 1.414 2020/07/15 05:40:05 jmc Exp $ +.Dd $Mdocdate: July 15 2020 $ .Dt SSH 1 .Os .Sh NAME @@ -1410,7 +1410,7 @@ may be necessary to redirect the input from .Pa /dev/null to make this work.) .It Ev SSH_ASKPASS_REQUIRE -allows further control over the use of an askpass program. +Allows further control over the use of an askpass program. If this variable is set to .Dq never then -- cgit v1.2.3 From dbaaa01daedb423c38124a72c471982fb08a16fb Mon Sep 17 00:00:00 2001 From: "solene@openbsd.org" Date: Wed, 15 Jul 2020 07:50:46 +0000 Subject: upstream: - Add [-a rounds] in ssh-keygen man page and usage() - Reorder parameters list in the first usage() case - Sentence rewording ok dtucker@ jmc@ noticed usage() missed -a flag too OpenBSD-Commit-ID: f06b9afe91cc96f260b929a56e9930caecbde246 --- ssh-keygen.1 | 13 ++++++++++--- ssh-keygen.c | 15 ++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 9b4d9337d..9198a511f 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.204 2020/07/15 04:27:34 dtucker Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.205 2020/07/15 07:50:46 solene Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -44,16 +44,18 @@ .Sh SYNOPSIS .Nm ssh-keygen .Op Fl q +.Op Fl a Ar rounds .Op Fl b Ar bits .Op Fl C Ar comment .Op Fl f Ar output_keyfile .Op Fl m Ar format -.Op Fl t Cm dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa .Op Fl N Ar new_passphrase .Op Fl O Ar option +.Op Fl t Cm dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa .Op Fl w Ar provider .Nm ssh-keygen .Fl p +.Op Fl a Ar rounds .Op Fl f Ar keyfile .Op Fl m Ar format .Op Fl N Ar new_passphrase @@ -71,6 +73,7 @@ .Op Fl f Ar input_keyfile .Nm ssh-keygen .Fl c +.Op Fl a Ar rounds .Op Fl C Ar comment .Op Fl f Ar keyfile .Op Fl P Ar passphrase @@ -93,6 +96,7 @@ .Op Fl f Ar known_hosts_file .Nm ssh-keygen .Fl K +.Op Fl a Ar rounds .Op Fl w Ar provider .Nm ssh-keygen .Fl R Ar hostname @@ -125,6 +129,7 @@ .Op Fl f Ar input_keyfile .Nm ssh-keygen .Fl A +.Op Fl a Ar rounds .Op Fl f Ar prefix_path .Nm ssh-keygen .Fl k @@ -248,7 +253,9 @@ keys may be converted using this option in conjunction with the .Fl p (change passphrase) flag. .Pp -After a key is generated, instructions below detail where the keys +After a key is generated, +.Nm +will ask where the keys should be placed to be activated. .Pp The options are as follows: diff --git a/ssh-keygen.c b/ssh-keygen.c index 7c6f11f40..4a27d3bfd 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.413 2020/06/26 05:02:03 dtucker Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.414 2020/07/15 07:50:46 solene Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -3035,15 +3035,16 @@ static void usage(void) { fprintf(stderr, - "usage: ssh-keygen [-q] [-b bits] [-C comment] [-f output_keyfile] [-m format]\n" + "usage: ssh-keygen [-q] [-a rounds] [-b bits] [-C comment] [-f output_keyfile]\n" + " [-m format] [-N new_passphrase] [-O option]\n" " [-t dsa | ecdsa | ecdsa-sk | ed25519 | ed25519-sk | rsa]\n" - " [-N new_passphrase] [-O option] [-w provider]\n" - " ssh-keygen -p [-f keyfile] [-m format] [-N new_passphrase]\n" + " [-w provider]\n" + " ssh-keygen -p [-a rounds] [-f keyfile] [-m format] [-N new_passphrase]\n" " [-P old_passphrase]\n" " ssh-keygen -i [-f input_keyfile] [-m key_format]\n" " ssh-keygen -e [-f input_keyfile] [-m key_format]\n" " ssh-keygen -y [-f input_keyfile]\n" - " ssh-keygen -c [-C comment] [-f keyfile] [-P passphrase]\n" + " ssh-keygen -c [-a rounds] [-C comment] [-f keyfile] [-P passphrase]\n" " ssh-keygen -l [-v] [-E fingerprint_hash] [-f input_keyfile]\n" " ssh-keygen -B [-f input_keyfile]\n"); #ifdef ENABLE_PKCS11 @@ -3053,7 +3054,7 @@ usage(void) fprintf(stderr, " ssh-keygen -F hostname [-lv] [-f known_hosts_file]\n" " ssh-keygen -H [-f known_hosts_file]\n" - " ssh-keygen -K [-w provider]\n" + " ssh-keygen -K [-a rounds] [-w provider]\n" " ssh-keygen -R hostname [-f known_hosts_file]\n" " ssh-keygen -r hostname [-g] [-f input_keyfile]\n" #ifdef WITH_OPENSSL @@ -3064,7 +3065,7 @@ usage(void) " [-n principals] [-O option] [-V validity_interval]\n" " [-z serial_number] file ...\n" " ssh-keygen -L [-f input_keyfile]\n" - " ssh-keygen -A [-f prefix_path]\n" + " ssh-keygen -A [-a rounds] [-f prefix_path]\n" " ssh-keygen -k -f krl_file [-u] [-s ca_public] [-z version_number]\n" " file ...\n" " ssh-keygen -Q [-l] -f krl_file [file ...]\n" -- cgit v1.2.3 From c4f239944a4351810fd317edf408bdcd5c0102d9 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 17 Jul 2020 03:23:10 +0000 Subject: upstream: Add %-TOKEN, environment variable and tilde expansion to UserKnownHostsFile, allowing the file to be automagically split up in the configuration (eg bz#1654). ok djm@, man page parts jmc@ OpenBSD-Commit-ID: 7e1b406caf147638bb51558836a72d6cc0bd1b18 --- ssh.c | 18 +++++++++++++++++- ssh_config.5 | 18 +++++++++++++----- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/ssh.c b/ssh.c index b13783d43..5c93c3d2f 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.531 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.532 2020/07/17 03:23:10 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -654,6 +654,7 @@ main(int ac, char **av) struct Forward fwd; struct addrinfo *addrs = NULL; size_t n, len; + u_int j; /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */ sanitise_stdfd(); @@ -1427,6 +1428,21 @@ main(int ac, char **av) options.forward_agent_sock_path = cp; } + for (j = 0; j < options.num_user_hostfiles; j++) { + if (options.user_hostfiles[j] != NULL) { + cp = tilde_expand_filename(options.user_hostfiles[j], + getuid()); + p = default_client_percent_dollar_expand(cp, + pw->pw_dir, host, options.user, pw->pw_name); + if (strcmp(options.user_hostfiles[j], p) != 0) + debug3("expanded UserKnownHostsFile '%s' -> " + "'%s'", options.user_hostfiles[j], p); + free(options.user_hostfiles[j]); + free(cp); + options.user_hostfiles[j] = p; + } + } + for (i = 0; i < options.num_local_forwards; i++) { if (options.local_forwards[i].listen_path != NULL) { cp = options.local_forwards[i].listen_path; diff --git a/ssh_config.5 b/ssh_config.5 index d5c561a10..fce59d13a 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.328 2020/05/29 05:48:39 jmc Exp $ -.Dd $Mdocdate: May 29 2020 $ +.\" $OpenBSD: ssh_config.5,v 1.329 2020/07/17 03:23:10 dtucker Exp $ +.Dd $Mdocdate: July 17 2020 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -1738,6 +1738,12 @@ having to remember to give the user name on the command line. .It Cm UserKnownHostsFile Specifies one or more files to use for the user host key database, separated by whitespace. +Each filename may use tilde notation to refer to the user's home directory, +the tokens described in the +.Sx TOKENS +section and environment variables as described in the +.Sx ENVIRONMENT VARIABLES +section. The default is .Pa ~/.ssh/known_hosts , .Pa ~/.ssh/known_hosts2 . @@ -1874,8 +1880,9 @@ The local username. .Cm LocalForward , .Cm Match exec , .Cm RemoteCommand , +.Cm RemoteForward , and -.Cm RemoteForward +.Com UserKnownHostsFile accept the tokens %%, %C, %d, %h, %i, %L, %l, %n, %p, %r, and %u. .Pp .Cm Hostname @@ -1899,9 +1906,10 @@ returned and the setting for that keyword will be ignored. The keywords .Cm CertificateFile , .Cm ControlPath , -.Cm IdentityAgent -and +.Cm IdentityAgent , .Cm IdentityFile +and +.Cm UserKnownHostsFile support environment variables. The keywords .Cm LocalForward -- cgit v1.2.3 From 8df5774a42d2eaffe057bd7f293fc6a4b1aa411c Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 17 Jul 2020 03:43:42 +0000 Subject: upstream: Add a '%k' TOKEN that expands to the effective HostKey of the destination. This allows, eg, keeping host keys in individual files using "UserKnownHostsFile ~/.ssh/known_hosts.d/%k". bz#1654, ok djm@, jmc@ (man page bits) OpenBSD-Commit-ID: 7084d723c9cc987a5c47194219efd099af5beadc --- ssh.c | 5 ++++- ssh_config | 3 ++- ssh_config.5 | 5 ++++- sshconnect.c | 5 ++++- 4 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ssh.c b/ssh.c index 5c93c3d2f..93e5c4831 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.532 2020/07/17 03:23:10 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.533 2020/07/17 03:43:42 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -176,6 +176,7 @@ char *forward_agent_sock_path = NULL; /* Various strings used to to percent_expand() arguments */ static char thishost[NI_MAXHOST], shorthost[NI_MAXHOST], portstr[NI_MAXSERV]; static char uidstr[32], *host_arg, *conn_hash_hex; +static const char *keyalias; /* socket address the host resolves to */ struct sockaddr_storage hostaddr; @@ -235,6 +236,7 @@ tilde_expand_paths(char **paths, u_int num_paths) "C", conn_hash_hex, \ "L", shorthost, \ "i", uidstr, \ + "k", keyalias, \ "l", thishost, \ "n", host_arg, \ "p", portstr @@ -1380,6 +1382,7 @@ main(int ac, char **av) snprintf(portstr, sizeof(portstr), "%d", options.port); snprintf(uidstr, sizeof(uidstr), "%llu", (unsigned long long)pw->pw_uid); + keyalias = options.host_key_alias ? options.host_key_alias : host_arg; conn_hash_hex = ssh_connection_hash(thishost, host, portstr, options.user); diff --git a/ssh_config b/ssh_config index 5e8ef548b..842ea866c 100644 --- a/ssh_config +++ b/ssh_config @@ -1,4 +1,4 @@ -# $OpenBSD: ssh_config,v 1.34 2019/02/04 02:39:42 dtucker Exp $ +# $OpenBSD: ssh_config,v 1.35 2020/07/17 03:43:42 dtucker Exp $ # This is the ssh client system-wide configuration file. See # ssh_config(5) for more information. This file provides defaults for @@ -43,3 +43,4 @@ # VisualHostKey no # ProxyCommand ssh -q -W %h:%p gateway.example.com # RekeyLimit 1G 1h +# UserKnownHostsFile ~/.ssh/known_hosts.d/%k diff --git a/ssh_config.5 b/ssh_config.5 index fce59d13a..523ee6973 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.329 2020/07/17 03:23:10 dtucker Exp $ +.\" $OpenBSD: ssh_config.5,v 1.330 2020/07/17 03:43:42 dtucker Exp $ .Dd $Mdocdate: July 17 2020 $ .Dt SSH_CONFIG 5 .Os @@ -1850,6 +1850,9 @@ Local user's home directory. The remote hostname. .It %i The local user ID. +.It %k +The host key alias if specified, otherwise the orignal remote hostname given +on the command line. .It %L The local hostname. .It %l diff --git a/sshconnect.c b/sshconnect.c index af08be415..f6d8a1bcf 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.329 2020/03/13 04:01:56 djm Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.330 2020/07/17 03:43:42 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -89,11 +89,14 @@ expand_proxy_command(const char *proxy_command, const char *user, const char *host, const char *host_arg, int port) { char *tmp, *ret, strport[NI_MAXSERV]; + const char *keyalias = options.host_key_alias ? + options.host_key_alias : host_arg; snprintf(strport, sizeof strport, "%d", port); xasprintf(&tmp, "exec %s", proxy_command); ret = percent_expand(tmp, "h", host, + "k", keyalias, "n", host_arg, "p", strport, "r", options.user, -- cgit v1.2.3 From 287dc6396e0f9cb2393f901816dbd7f2a7dfbb5f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 17 Jul 2020 03:51:32 +0000 Subject: upstream: log error message for process_write() write failures OpenBSD-Commit-ID: f733d7b3b05e3c68967dc18dfe39b9e8fad29851 --- sftp-server.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sftp-server.c b/sftp-server.c index b1d8c88cb..55386fa9a 100644 --- a/sftp-server.c +++ b/sftp-server.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp-server.c,v 1.118 2020/06/22 05:52:05 djm Exp $ */ +/* $OpenBSD: sftp-server.c,v 1.119 2020/07/17 03:51:32 djm Exp $ */ /* * Copyright (c) 2000-2004 Markus Friedl. All rights reserved. * @@ -799,18 +799,19 @@ process_write(u_int32_t id) if (!(handle_to_flags(handle) & O_APPEND) && lseek(fd, off, SEEK_SET) == -1) { status = errno_to_portable(errno); - error("process_write: seek failed"); + error("%s: seek failed", __func__); } else { /* XXX ATOMICIO ? */ ret = write(fd, data, len); if (ret == -1) { - error("process_write: write failed"); + error("%s: write: %s", __func__, + strerror(errno)); status = errno_to_portable(errno); } else if ((size_t)ret == len) { status = SSH2_FX_OK; handle_update_write(handle, ret); } else { - debug2("nothing at all written"); + debug2("%s: nothing at all written", __func__); status = SSH2_FX_FAILURE; } } -- cgit v1.2.3 From 6736fe680704a3518cb4f3f8f6723b00433bd3dd Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 17 Jul 2020 03:26:58 +0000 Subject: upstream: Add tests for expansions on UserKnownHostsFile. OpenBSD-Regress-ID: bccf8060306c841bbcceb1392644f906a4d6ca51 --- regress/percent.sh | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/regress/percent.sh b/regress/percent.sh index cdcbe1839..f569f82c2 100644 --- a/regress/percent.sh +++ b/regress/percent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: percent.sh,v 1.7 2020/05/29 04:32:26 dtucker Exp $ +# $OpenBSD: percent.sh,v 1.8 2020/07/17 03:26:58 dtucker Exp $ # Placed in the Public Domain. tid="percent expansions" @@ -25,12 +25,21 @@ trial() trace "test $opt=$arg $expect" rm -f $OBJ/actual + got="" case "$opt" in localcommand) ${SSH} -F $OBJ/ssh_proxy -o $opt="echo '$arg' >$OBJ/actual" \ somehost true got=`cat $OBJ/actual` ;; + userknownhostsfile) + # Move the userknownhosts file to what the expansion says, + # make sure ssh works then put it back. + mv "$OBJ/known_hosts" "$OBJ/$expect" + ${SSH} -F $OBJ/ssh_proxy -o $opt="$OBJ/$arg" somehost true && \ + got="$expect" + mv "$OBJ/$expect" "$OBJ/known_hosts" + ;; matchexec) (cat $OBJ/ssh_proxy && \ echo "Match Exec \"echo '$arg' >$OBJ/actual\"") \ @@ -55,13 +64,18 @@ trial() } for i in matchexec localcommand remotecommand controlpath identityagent \ - forwardagent localforward remoteforward; do + forwardagent localforward remoteforward userknownhostsfile; do verbose $tid $i percent - if [ "$i" = "localcommand" ]; then - REMUSER=$USER + case "$i" in + localcommand|userknownhostsfile) + # Any test that's going to actually make a connection needs + # to use the real username. + REMUSER=$USER ;; + *) + REMUSER=remuser ;; + esac + if [ "$i" = "$localcommand" ]; then trial $i '%T' NONE - else - REMUSER=remuser fi # Matches implementation in readconf.c:ssh_connection_hash() HASH=`printf "${HOSTNAME}127.0.0.1${PORT}$REMUSER" | @@ -70,20 +84,25 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ trial $i '%C' $HASH trial $i '%i' $USERID trial $i '%h' 127.0.0.1 - trial $i '%d' $HOME trial $i '%L' $HOST trial $i '%l' $HOSTNAME trial $i '%n' somehost trial $i '%p' $PORT trial $i '%r' $REMUSER trial $i '%u' $USER - trial $i '%%/%C/%i/%h/%d/%L/%l/%n/%p/%r/%u' \ - "%/$HASH/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" + # We can't specify a full path outside the regress dir, so skip tests + # containing %d for UserKnownHostsFile + if [ "$i" != "userknownhostsfile" ]; then + trial $i '%d' $HOME + trial $i '%%/%C/%i/%h/%d/%L/%l/%n/%p/%r/%u' \ + "%/$HASH/$USERID/127.0.0.1/$HOME/$HOST/$HOSTNAME/somehost/$PORT/$REMUSER/$USER" + fi done # Subset of above since we don't expand shell-style variables on anything that # runs a command because the shell will expand those. -for i in controlpath identityagent forwardagent localforward remoteforward; do +for i in controlpath identityagent forwardagent localforward remoteforward \ + userknownhostsfile; do verbose $tid $i dollar FOO=bar export FOO -- cgit v1.2.3 From 40649bd0822883b684183854b16d0b8461d5697b Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 17 Jul 2020 07:10:24 +0000 Subject: upstream: Add test for '%k' (HostKeyAlias) TOKEN. OpenBSD-Regress-ID: 8ed1ba1a811790031aad3fcea860a34ad7910456 --- regress/percent.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/regress/percent.sh b/regress/percent.sh index f569f82c2..28781117e 100644 --- a/regress/percent.sh +++ b/regress/percent.sh @@ -1,4 +1,4 @@ -# $OpenBSD: percent.sh,v 1.8 2020/07/17 03:26:58 dtucker Exp $ +# $OpenBSD: percent.sh,v 1.9 2020/07/17 07:10:24 dtucker Exp $ # Placed in the Public Domain. tid="percent expansions" @@ -87,6 +87,7 @@ for i in matchexec localcommand remotecommand controlpath identityagent \ trial $i '%L' $HOST trial $i '%l' $HOSTNAME trial $i '%n' somehost + trial $i '%k' localhost-with-alias trial $i '%p' $PORT trial $i '%r' $REMUSER trial $i '%u' $USER -- cgit v1.2.3 From 69860769fa9f4529d8612ec055ae11912f7344cf Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Fri, 17 Jul 2020 05:59:05 +0000 Subject: upstream: fix macro slip in previous; OpenBSD-Commit-ID: 624e47ab209450ad9ad5c69f54fa69244de5ed9a --- ssh_config.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ssh_config.5 b/ssh_config.5 index 523ee6973..2b635410f 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.330 2020/07/17 03:43:42 dtucker Exp $ +.\" $OpenBSD: ssh_config.5,v 1.331 2020/07/17 05:59:05 jmc Exp $ .Dd $Mdocdate: July 17 2020 $ .Dt SSH_CONFIG 5 .Os @@ -1885,7 +1885,7 @@ The local username. .Cm RemoteCommand , .Cm RemoteForward , and -.Com UserKnownHostsFile +.Cm UserKnownHostsFile accept the tokens %%, %C, %d, %h, %i, %L, %l, %n, %p, %r, and %u. .Pp .Cm Hostname -- cgit v1.2.3 From a2855c048b3f4b17d8787bd3f24232ec0cd79abe Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 17 Jul 2020 07:09:24 +0000 Subject: upstream: Add %k to the TOKENs for Match Exec for consistency with the other keywords that recently got %k. OpenBSD-Commit-ID: 1857d1c40f270cbc254fca91e66110641dddcfdb --- readconf.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/readconf.c b/readconf.c index 9e597748c..a810736a4 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.332 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.333 2020/07/17 07:09:24 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -664,7 +664,7 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, if (r == (negate ? 1 : 0)) this_result = result = 0; } else if (strcasecmp(attrib, "exec") == 0) { - char *conn_hash_hex; + char *conn_hash_hex, *keyalias; if (gethostname(thishost, sizeof(thishost)) == -1) fatal("gethostname: %s", strerror(errno)); @@ -675,12 +675,15 @@ match_cfg_line(Options *options, char **condition, struct passwd *pw, (unsigned long long)pw->pw_uid); conn_hash_hex = ssh_connection_hash(thishost, host, portstr, ruser); + keyalias = options->host_key_alias ? + options->host_key_alias : host; cmd = percent_expand(arg, "C", conn_hash_hex, "L", shorthost, "d", pw->pw_dir, "h", host, + "k", keyalias, "l", thishost, "n", original_host, "p", portstr, -- cgit v1.2.3 From 3ec9a6d7317236a9994887d8bd5d246af403a00d Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 20 Jul 2020 13:09:25 +1000 Subject: Add ssh-sk-helper and manpage to RPM spec file Based on patch from Fabio Pedretti --- contrib/redhat/openssh.spec | 5 +++++ contrib/suse/openssh.spec | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index dcd57aa19..2780d6b28 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec @@ -363,8 +363,10 @@ fi %attr(0755,root,root) %dir %{_libexecdir}/openssh %attr(4711,root,root) %{_libexecdir}/openssh/ssh-keysign %attr(0755,root,root) %{_libexecdir}/openssh/ssh-pkcs11-helper +%attr(0755,root,root) %{_libexecdir}/openssh/ssh-sk-helper %attr(0644,root,root) %{_mandir}/man8/ssh-keysign.8* %attr(0644,root,root) %{_mandir}/man8/ssh-pkcs11-helper.8* +%attr(0644,root,root) %{_mandir}/man8/ssh-sk-helper.8* %endif %if %{scard} %attr(0755,root,root) %dir %{_datadir}/openssh @@ -422,6 +424,9 @@ fi %endif %changelog +* Mon Jul 20 2020 Damien Miller +- Add ssh-sk-helper and corresponding manual page. + * Sat Feb 10 2018 Darren Tucker - Update openssl-devel dependency to match current requirements. - Handle Fedora >=6 openssl 1.0 compat libs. diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index a2789052d..5f74247a4 100644 --- a/contrib/suse/openssh.spec +++ b/contrib/suse/openssh.spec @@ -75,6 +75,8 @@ patented algorithms to separate libraries (OpenSSL). This package contains an X Window System passphrase dialog for OpenSSH. %changelog +* Mon Jul 20 2020 Damien Miller +- Add ssh-sk-helper and corresponding manual page. * Wed Oct 26 2005 Iain Morgan - Removed accidental inclusion of --without-zlib-version-check * Tue Oct 25 2005 Iain Morgan @@ -211,6 +213,7 @@ rm -rf $RPM_BUILD_ROOT %attr(0755,root,root) %{_libdir}/ssh/sftp-server %attr(4711,root,root) %{_libdir}/ssh/ssh-keysign %attr(0755,root,root) %{_libdir}/ssh/ssh-pkcs11-helper +%attr(0755,root,root) %{_libdir}/ssh/ssh-sk-helper %attr(0644,root,root) %doc %{_mandir}/man1/scp.1* %attr(0644,root,root) %doc %{_mandir}/man1/sftp.1* %attr(0644,root,root) %doc %{_mandir}/man1/ssh.1* @@ -224,6 +227,7 @@ rm -rf $RPM_BUILD_ROOT %attr(0644,root,root) %doc %{_mandir}/man8/sftp-server.8* %attr(0644,root,root) %doc %{_mandir}/man8/ssh-keysign.8* %attr(0644,root,root) %doc %{_mandir}/man8/ssh-pkcs11-helper.8* +%attr(0644,root,root) %doc %{_mandir}/man8/ssh-sk-helper.8* %attr(0644,root,root) %doc %{_mandir}/man8/sshd.8* %attr(0644,root,root) /var/adm/fillup-templates/sysconfig.ssh -- cgit v1.2.3 From 62c81ef531b0cc7ff655455dd34f5f0c94f48e82 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Mon, 20 Jul 2020 22:12:07 +1000 Subject: Skip ECDSA-SK webauthn test when built w/out ECC --- regress/unittests/sshsig/tests.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/regress/unittests/sshsig/tests.c b/regress/unittests/sshsig/tests.c index 7365d2492..bf59d58d1 100644 --- a/regress/unittests/sshsig/tests.c +++ b/regress/unittests/sshsig/tests.c @@ -127,10 +127,12 @@ tests(void) check_sig("ed25519_sk.pub", "ed25519_sk.sig", msg, namespace); TEST_DONE(); +#if defined(WITH_OPENSSL) && defined(OPENSSL_HAS_ECC) TEST_START("check ECDSA-SK webauthn signature"); check_sig("ecdsa_sk_webauthn.pub", "ecdsa_sk_webauthn.sig", msg, namespace); TEST_DONE(); +#endif sshbuf_free(msg); free(namespace); -- cgit v1.2.3 From 89fc3f414be0ce4e8008332a9739a7d721269e50 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Tue, 28 Jul 2020 19:40:30 +1000 Subject: Use argv in OSSH_CHECK_CFLAG_COMPILE test. configure.ac is not detecting -Wextra in compilers that implement the option. The problem is that -Wextra implies -Wunused-parameter, and the C excerpt used by aclocal.m4 does not use argv. Patch from pedro at ambientworks.net, ok djm@ --- aclocal.m4 | 3 +++ configure.ac | 1 + 2 files changed, 4 insertions(+) diff --git a/aclocal.m4 b/aclocal.m4 index 0193c3dcc..b70856e43 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -15,6 +15,7 @@ AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{ #include #include int main(int argc, char **argv) { + (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; @@ -62,6 +63,7 @@ AC_DEFUN([OSSH_CHECK_CFLAG_LINK], [{ #include #include int main(int argc, char **argv) { + (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; @@ -100,6 +102,7 @@ AC_DEFUN([OSSH_CHECK_LDFLAG_LINK], [{ #include #include int main(int argc, char **argv) { + (void)argv; /* Some math to catch -ftrapv problems in the toolchain */ int i = 123 * argc, j = 456 + argc, k = 789 - argc; float l = i * 2.1; diff --git a/configure.ac b/configure.ac index ff7417354..81a6e31f9 100644 --- a/configure.ac +++ b/configure.ac @@ -164,6 +164,7 @@ if test "$GCC" = "yes" || test "$GCC" = "egcs"; then OSSH_CHECK_CFLAG_COMPILE([-Wformat-security]) OSSH_CHECK_CFLAG_COMPILE([-Wsizeof-pointer-memaccess]) OSSH_CHECK_CFLAG_COMPILE([-Wpointer-sign], [-Wno-pointer-sign]) + 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([-fno-strict-aliasing]) -- cgit v1.2.3 From ae7527010c44b3376b85d036a498f136597b2099 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 31 Jul 2020 15:19:04 +1000 Subject: Remove AC_REVISION. It hasn't been useful since we switched to git in 2014. ok djm@ --- configure.ac | 1 - 1 file changed, 1 deletion(-) diff --git a/configure.ac b/configure.ac index 81a6e31f9..0a2eb0448 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,6 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT([OpenSSH], [Portable], [openssh-unix-dev@mindrot.org]) -AC_REVISION($Revision: 1.583 $) AC_CONFIG_SRCDIR([ssh.c]) AC_LANG([C]) -- cgit v1.2.3 From ced327b9fb78c94d143879ef4b2a02cbc5d38690 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 31 Jul 2020 04:19:37 +0000 Subject: upstream: Also compare username when checking for JumpHost loops. bz#3057, ok djm@ OpenBSD-Commit-ID: 9bbc1d138adb34c54f3c03a15a91f75dbf418782 --- ssh.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ssh.c b/ssh.c index 93e5c4831..9c6a6278b 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.533 2020/07/17 03:43:42 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.534 2020/07/31 04:19:37 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1256,19 +1256,25 @@ main(int ac, char **av) /* Fill configuration defaults. */ fill_default_options(&options); + if (options.user == NULL) + options.user = xstrdup(pw->pw_name); + /* * If ProxyJump option specified, then construct a ProxyCommand now. */ if (options.jump_host != NULL) { char port_s[8]; - const char *sshbin = argv0; + const char *jumpuser = options.jump_user, *sshbin = argv0; int port = options.port, jumpport = options.jump_port; if (port <= 0) port = default_ssh_port(); if (jumpport <= 0) jumpport = default_ssh_port(); - if (strcmp(options.jump_host, host) == 0 && port == jumpport) + if (jumpuser == NULL) + jumpuser = options.user; + if (strcmp(options.jump_host, host) == 0 && port == jumpport && + strcmp(options.user, jumpuser) == 0) fatal("jumphost loop via %s", options.jump_host); /* @@ -1371,9 +1377,6 @@ main(int ac, char **av) tty_flag = 0; } - if (options.user == NULL) - options.user = xstrdup(pw->pw_name); - /* Set up strings used to percent_expand() arguments */ if (gethostname(thishost, sizeof(thishost)) == -1) fatal("gethostname: %s", strerror(errno)); -- cgit v1.2.3 From ab9105470a83ed5d8197959a1b1f367399958ba1 Mon Sep 17 00:00:00 2001 From: "deraadt@openbsd.org" Date: Mon, 3 Aug 2020 02:42:49 +0000 Subject: upstream: clang -Wimplicit-fallthrough does not recognise /* FALLTHROUGH */ comments, which is the style we currently use, and gives too many boring warnings. ok djm OpenBSD-Commit-ID: 07b5031e9f49f2b69ac5e85b8da4fc9e393992a0 --- .skipped-commit-ids | 1 + 1 file changed, 1 insertion(+) diff --git a/.skipped-commit-ids b/.skipped-commit-ids index 6aa00f1e3..6abbb99bc 100644 --- a/.skipped-commit-ids +++ b/.skipped-commit-ids @@ -20,6 +20,7 @@ d9b910e412d139141b072a905e66714870c38ac0 Makefile.inc 5010ff08f7ad92082e87dde098b20f5c24921a8f moduli regen script update 3bcae7a754db3fc5ad3cab63dd46774edb35b8ae moduli regen script update 52ff0e3205036147b2499889353ac082e505ea54 moduli update +07b5031e9f49f2b69ac5e85b8da4fc9e393992a0 Makefile.inc Old upstream tree: -- cgit v1.2.3 From a8732d74cb8e72f0c6366015687f1e649f60be87 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 3 Aug 2020 02:43:41 +0000 Subject: upstream: allow -A to explicitly enable agent forwarding in scp and sftp. The default remains to not forward an agent, even when ssh_config enables it. ok jmc dtucker markus OpenBSD-Commit-ID: 36cc526aa3b0f94e4704b8d7b969dd63e8576822 --- scp.1 | 11 ++++++++--- scp.c | 11 +++++++---- sftp.1 | 11 ++++++++--- sftp.c | 11 +++++++---- 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/scp.1 b/scp.1 index d5f65af4e..feb839e9c 100644 --- a/scp.1 +++ b/scp.1 @@ -8,9 +8,9 @@ .\" .\" Created: Sun May 7 00:14:37 1995 ylo .\" -.\" $OpenBSD: scp.1,v 1.89 2020/04/30 18:28:37 jmc Exp $ +.\" $OpenBSD: scp.1,v 1.90 2020/08/03 02:43:41 djm Exp $ .\" -.Dd $Mdocdate: April 30 2020 $ +.Dd $Mdocdate: August 3 2020 $ .Dt SCP 1 .Os .Sh NAME @@ -18,7 +18,7 @@ .Nd OpenSSH secure file copy .Sh SYNOPSIS .Nm scp -.Op Fl 346BCpqrTv +.Op Fl 346ABCpqrTv .Op Fl c Ar cipher .Op Fl F Ar ssh_config .Op Fl i Ar identity_file @@ -86,6 +86,11 @@ to use IPv4 addresses only. Forces .Nm to use IPv6 addresses only. +.It Fl A +Allows forwarding of +.Xr ssh-agent 1 +to the remote system. +The default is not to forward an authentication agent. .It Fl B Selects batch mode (prevents asking for passwords or passphrases). .It Fl C diff --git a/scp.c b/scp.c index 6b1a0c8be..6ae17061d 100644 --- a/scp.c +++ b/scp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: scp.c,v 1.211 2020/05/29 21:22:02 millert Exp $ */ +/* $OpenBSD: scp.c,v 1.212 2020/08/03 02:43:41 djm Exp $ */ /* * scp - secure remote copy. This is basically patched BSD rcp which * uses ssh to do the data transfer (instead of using rcmd). @@ -425,7 +425,6 @@ main(int argc, char **argv) args.list = remote_remote_args.list = NULL; addargs(&args, "%s", ssh_program); addargs(&args, "-x"); - addargs(&args, "-oForwardAgent=no"); addargs(&args, "-oPermitLocalCommand=no"); addargs(&args, "-oClearAllForwardings=yes"); addargs(&args, "-oRemoteCommand=none"); @@ -433,7 +432,7 @@ main(int argc, char **argv) fflag = Tflag = tflag = 0; while ((ch = getopt(argc, argv, - "dfl:prtTvBCc:i:P:q12346S:o:F:J:")) != -1) { + "12346ABCTdfpqrtvF:J:P:S:c:i:l:o:")) != -1) { switch (ch) { /* User-visible flags. */ case '1': @@ -442,6 +441,7 @@ main(int argc, char **argv) case '2': /* Ignored */ break; + case 'A': case '4': case '6': case 'C': @@ -523,6 +523,9 @@ main(int argc, char **argv) argc -= optind; argv += optind; + /* Do this last because we want the user to be able to override it */ + addargs(&args, "-oForwardAgent=no"); + if ((pwd = getpwuid(userid = getuid())) == NULL) fatal("unknown user %u", (u_int) userid); @@ -1593,7 +1596,7 @@ void usage(void) { (void) fprintf(stderr, - "usage: scp [-346BCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" + "usage: scp [-346ABCpqrTv] [-c cipher] [-F ssh_config] [-i identity_file]\n" " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" " [-S program] source ... target\n"); exit(1); diff --git a/sftp.1 b/sftp.1 index a305b37d1..1cfa5ec22 100644 --- a/sftp.1 +++ b/sftp.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: sftp.1,v 1.131 2020/04/23 21:28:09 jmc Exp $ +.\" $OpenBSD: sftp.1,v 1.132 2020/08/03 02:43:41 djm Exp $ .\" .\" Copyright (c) 2001 Damien Miller. All rights reserved. .\" @@ -22,7 +22,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: April 23 2020 $ +.Dd $Mdocdate: August 3 2020 $ .Dt SFTP 1 .Os .Sh NAME @@ -30,7 +30,7 @@ .Nd OpenSSH secure file transfer .Sh SYNOPSIS .Nm sftp -.Op Fl 46aCfNpqrv +.Op Fl 46AaCfNpqrv .Op Fl B Ar buffer_size .Op Fl b Ar batchfile .Op Fl c Ar cipher @@ -104,6 +104,11 @@ to use IPv4 addresses only. Forces .Nm to use IPv6 addresses only. +.It Fl A +Allows forwarding of +.Xr ssh-agent 1 +to the remote system. +The default is not to forward an authentication agent. .It Fl a Attempt to continue interrupted transfers rather than overwriting existing partial or complete copies of files. diff --git a/sftp.c b/sftp.c index 2799e4a10..c88c86118 100644 --- a/sftp.c +++ b/sftp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.200 2020/04/03 05:53:52 jmc Exp $ */ +/* $OpenBSD: sftp.c,v 1.201 2020/08/03 02:43:41 djm Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -2363,7 +2363,7 @@ usage(void) extern char *__progname; fprintf(stderr, - "usage: %s [-46aCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher]\n" + "usage: %s [-46AaCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher]\n" " [-D sftp_server_path] [-F ssh_config] [-i identity_file]\n" " [-J destination] [-l limit] [-o ssh_option] [-P port]\n" " [-R num_requests] [-S program] [-s subsystem | sftp_server]\n" @@ -2401,7 +2401,6 @@ main(int argc, char **argv) args.list = NULL; addargs(&args, "%s", ssh_program); addargs(&args, "-oForwardX11 no"); - addargs(&args, "-oForwardAgent no"); addargs(&args, "-oPermitLocalCommand no"); addargs(&args, "-oClearAllForwardings yes"); @@ -2409,9 +2408,10 @@ main(int argc, char **argv) infile = stdin; while ((ch = getopt(argc, argv, - "1246afhNpqrvCc:D:i:l:o:s:S:b:B:F:J:P:R:")) != -1) { + "1246AafhNpqrvCc:D:i:l:o:s:S:b:B:F:J:P:R:")) != -1) { switch (ch) { /* Passed through to ssh(1) */ + case 'A': case '4': case '6': case 'C': @@ -2511,6 +2511,9 @@ main(int argc, char **argv) } } + /* Do this last because we want the user to be able to override it */ + addargs(&args, "-oForwardAgent no"); + if (!isatty(STDERR_FILENO)) showprogress = 0; -- cgit v1.2.3 From 2d8a3b7e8b0408dfeb933ac5cfd3a58f5bac49af Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 3 Aug 2020 02:53:51 +0000 Subject: upstream: ensure that certificate extensions are lexically sorted. Previously if the user specified a custom extension then the everything would be in order except the custom ones. bz3198 ok dtucker markus OpenBSD-Commit-ID: d97deb90587b06cb227c66ffebb2d9667bf886f0 --- ssh-keygen.c | 152 +++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 85 insertions(+), 67 deletions(-) diff --git a/ssh-keygen.c b/ssh-keygen.c index 4a27d3bfd..cc092368e 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.414 2020/07/15 07:50:46 solene Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.415 2020/08/03 02:53:51 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -133,13 +133,13 @@ static char *certflags_command = NULL; static char *certflags_src_addr = NULL; /* Arbitrary extensions specified by user */ -struct cert_userext { +struct cert_ext { char *key; char *val; int crit; }; -static struct cert_userext *cert_userext; -static size_t ncert_userext; +static struct cert_ext *cert_ext; +static size_t ncert_ext; /* Conversion to/from various formats */ enum { @@ -1601,31 +1601,32 @@ do_change_comment(struct passwd *pw, const char *identity_comment) } static void -add_flag_option(struct sshbuf *c, const char *name) +cert_ext_add(const char *key, const char *value, int iscrit) { - int r; - - debug3("%s: %s", __func__, name); - if ((r = sshbuf_put_cstring(c, name)) != 0 || - (r = sshbuf_put_string(c, NULL, 0)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); + cert_ext = xreallocarray(cert_ext, ncert_ext + 1, sizeof(*cert_ext)); + cert_ext[ncert_ext].key = xstrdup(key); + cert_ext[ncert_ext].val = value == NULL ? NULL : xstrdup(value); + cert_ext[ncert_ext].crit = iscrit; + ncert_ext++; } -static void -add_string_option(struct sshbuf *c, const char *name, const char *value) +/* qsort(3) comparison function for certificate extensions */ +static int +cert_ext_cmp(const void *_a, const void *_b) { - struct sshbuf *b; + const struct cert_ext *a = (const struct cert_ext *)_a; + const struct cert_ext *b = (const struct cert_ext *)_b; int r; - debug3("%s: %s=%s", __func__, name, value); - if ((b = sshbuf_new()) == NULL) - fatal("%s: sshbuf_new failed", __func__); - if ((r = sshbuf_put_cstring(b, value)) != 0 || - (r = sshbuf_put_cstring(c, name)) != 0 || - (r = sshbuf_put_stringb(c, b)) != 0) - fatal("%s: buffer error: %s", __func__, ssh_err(r)); - - sshbuf_free(b); + if (a->crit != b->crit) + return (a->crit < b->crit) ? -1 : 1; + if ((r = strcmp(a->key, b->key)) != 0) + return r; + if ((a->val == NULL) != (b->val == NULL)) + return (a->val == NULL) ? -1 : 1; + if (a->val != NULL && (r = strcmp(a->val, b->val)) != 0) + return r; + return 0; } #define OPTIONS_CRITICAL 1 @@ -1633,44 +1634,62 @@ add_string_option(struct sshbuf *c, const char *name, const char *value) static void prepare_options_buf(struct sshbuf *c, int which) { + struct sshbuf *b; size_t i; + int r; + const struct cert_ext *ext; + if ((b = sshbuf_new()) == NULL) + fatal("%s: sshbuf_new failed", __func__); sshbuf_reset(c); - if ((which & OPTIONS_CRITICAL) != 0 && - certflags_command != NULL) - add_string_option(c, "force-command", certflags_command); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_X_FWD) != 0) - add_flag_option(c, "permit-X11-forwarding"); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_AGENT_FWD) != 0) - add_flag_option(c, "permit-agent-forwarding"); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_PORT_FWD) != 0) - add_flag_option(c, "permit-port-forwarding"); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_PTY) != 0) - add_flag_option(c, "permit-pty"); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_USER_RC) != 0) - add_flag_option(c, "permit-user-rc"); - if ((which & OPTIONS_EXTENSIONS) != 0 && - (certflags_flags & CERTOPT_NO_REQUIRE_USER_PRESENCE) != 0) - add_flag_option(c, "no-touch-required"); - if ((which & OPTIONS_CRITICAL) != 0 && - certflags_src_addr != NULL) - add_string_option(c, "source-address", certflags_src_addr); - for (i = 0; i < ncert_userext; i++) { - if ((cert_userext[i].crit && (which & OPTIONS_EXTENSIONS)) || - (!cert_userext[i].crit && (which & OPTIONS_CRITICAL))) + for (i = 0; i < ncert_ext; i++) { + ext = &cert_ext[i]; + if ((ext->crit && (which & OPTIONS_EXTENSIONS)) || + (!ext->crit && (which & OPTIONS_CRITICAL))) continue; - if (cert_userext[i].val == NULL) - add_flag_option(c, cert_userext[i].key); - else { - add_string_option(c, cert_userext[i].key, - cert_userext[i].val); + if (ext->val == NULL) { + /* flag option */ + debug3("%s: %s", __func__, ext->key); + if ((r = sshbuf_put_cstring(c, ext->key)) != 0 || + (r = sshbuf_put_string(c, NULL, 0)) != 0) + fatal("%s: buffer: %s", __func__, ssh_err(r)); + } else { + /* key/value option */ + debug3("%s: %s=%s", __func__, ext->key, ext->val); + sshbuf_reset(b); + if ((r = sshbuf_put_cstring(c, ext->key)) != 0 || + (r = sshbuf_put_cstring(b, ext->val)) != 0 || + (r = sshbuf_put_stringb(c, b)) != 0) + fatal("%s: buffer: %s", __func__, ssh_err(r)); } } + sshbuf_free(b); +} + +static void +finalise_cert_exts(void) +{ + /* critical options */ + if (certflags_command != NULL) + cert_ext_add("force-command", certflags_command, 1); + if (certflags_src_addr != NULL) + cert_ext_add("source-address", certflags_src_addr, 1); + /* extensions */ + if ((certflags_flags & CERTOPT_X_FWD) != 0) + cert_ext_add("permit-X11-forwarding", NULL, 0); + if ((certflags_flags & CERTOPT_AGENT_FWD) != 0) + cert_ext_add("permit-agent-forwarding", NULL, 0); + if ((certflags_flags & CERTOPT_PORT_FWD) != 0) + cert_ext_add("permit-port-forwarding", NULL, 0); + if ((certflags_flags & CERTOPT_PTY) != 0) + cert_ext_add("permit-pty", NULL, 0); + if ((certflags_flags & CERTOPT_USER_RC) != 0) + cert_ext_add("permit-user-rc", NULL, 0); + if ((certflags_flags & CERTOPT_NO_REQUIRE_USER_PRESENCE) != 0) + cert_ext_add("no-touch-required", NULL, 0); + /* order lexically by key */ + if (ncert_ext > 0) + qsort(cert_ext, ncert_ext, sizeof(*cert_ext), cert_ext_cmp); } static struct sshkey * @@ -1780,6 +1799,7 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, } ca_fp = sshkey_fingerprint(ca, fingerprint_hash, SSH_FP_DEFAULT); + finalise_cert_exts(); for (i = 0; i < argc; i++) { /* Split list of principals */ n = 0; @@ -1994,13 +2014,8 @@ add_cert_option(char *opt) val = xstrdup(strchr(opt, ':') + 1); if ((cp = strchr(val, '=')) != NULL) *cp++ = '\0'; - cert_userext = xreallocarray(cert_userext, ncert_userext + 1, - sizeof(*cert_userext)); - cert_userext[ncert_userext].key = val; - cert_userext[ncert_userext].val = cp == NULL ? - NULL : xstrdup(cp); - cert_userext[ncert_userext].crit = iscrit; - ncert_userext++; + cert_ext_add(val, cp, iscrit); + free(val); } else fatal("Unsupported certificate option \"%s\"", opt); } @@ -2008,7 +2023,7 @@ add_cert_option(char *opt) static void show_options(struct sshbuf *optbuf, int in_critical) { - char *name, *arg; + char *name, *arg, *hex; struct sshbuf *options, *option = NULL; int r; @@ -2037,11 +2052,14 @@ show_options(struct sshbuf *optbuf, int in_critical) __func__, ssh_err(r)); printf(" %s\n", arg); free(arg); - } else { - printf(" UNKNOWN OPTION (len %zu)\n", - sshbuf_len(option)); + } else if (sshbuf_len(option) > 0) { + hex = sshbuf_dtob16(option); + printf(" UNKNOWN OPTION: %s (len %zu)\n", + hex, sshbuf_len(option)); sshbuf_reset(option); - } + free(hex); + } else + printf(" UNKNOWN FLAG OPTION\n"); free(name); if (sshbuf_len(option) != 0) fatal("Option corrupt: extra data at end"); -- cgit v1.2.3 From c9e3be9f4b41fda32a2a0138d54c7a6b563bc94d Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 4 Aug 2020 14:58:46 +1000 Subject: undef TAILQ_CONCAT and friends Needed for NetBSD. etc that supply these macros --- openbsd-compat/sys-queue.h | 115 +++++++++++++++++++++++---------------------- 1 file changed, 59 insertions(+), 56 deletions(-) diff --git a/openbsd-compat/sys-queue.h b/openbsd-compat/sys-queue.h index a171f8b55..816c15cd4 100644 --- a/openbsd-compat/sys-queue.h +++ b/openbsd-compat/sys-queue.h @@ -41,90 +41,93 @@ * Require for OS/X and other platforms that have old/broken/incomplete * . */ -#undef SLIST_HEAD -#undef SLIST_HEAD_INITIALIZER -#undef SLIST_ENTRY -#undef SLIST_FOREACH_PREVPTR -#undef SLIST_FOREACH_SAFE -#undef SLIST_FIRST -#undef SLIST_END -#undef SLIST_EMPTY -#undef SLIST_NEXT -#undef SLIST_FOREACH -#undef SLIST_INIT -#undef SLIST_INSERT_AFTER -#undef SLIST_INSERT_HEAD -#undef SLIST_REMOVE_HEAD -#undef SLIST_REMOVE_AFTER -#undef SLIST_REMOVE -#undef SLIST_REMOVE_NEXT -#undef LIST_HEAD -#undef LIST_HEAD_INITIALIZER +#undef CIRCLEQ_EMPTY +#undef CIRCLEQ_END +#undef CIRCLEQ_ENTRY +#undef CIRCLEQ_FIRST +#undef CIRCLEQ_FOREACH +#undef CIRCLEQ_FOREACH_REVERSE +#undef CIRCLEQ_HEAD +#undef CIRCLEQ_HEAD_INITIALIZER +#undef CIRCLEQ_INIT +#undef CIRCLEQ_INSERT_AFTER +#undef CIRCLEQ_INSERT_BEFORE +#undef CIRCLEQ_INSERT_HEAD +#undef CIRCLEQ_INSERT_TAIL +#undef CIRCLEQ_LAST +#undef CIRCLEQ_NEXT +#undef CIRCLEQ_PREV +#undef CIRCLEQ_REMOVE +#undef CIRCLEQ_REPLACE +#undef LIST_EMPTY +#undef LIST_END #undef LIST_ENTRY #undef LIST_FIRST -#undef LIST_END -#undef LIST_EMPTY -#undef LIST_NEXT #undef LIST_FOREACH #undef LIST_FOREACH_SAFE +#undef LIST_HEAD +#undef LIST_HEAD_INITIALIZER #undef LIST_INIT #undef LIST_INSERT_AFTER #undef LIST_INSERT_BEFORE #undef LIST_INSERT_HEAD +#undef LIST_NEXT #undef LIST_REMOVE #undef LIST_REPLACE -#undef SIMPLEQ_HEAD -#undef SIMPLEQ_HEAD_INITIALIZER +#undef SIMPLEQ_CONCAT +#undef SIMPLEQ_EMPTY +#undef SIMPLEQ_END #undef SIMPLEQ_ENTRY #undef SIMPLEQ_FIRST -#undef SIMPLEQ_END -#undef SIMPLEQ_EMPTY -#undef SIMPLEQ_NEXT #undef SIMPLEQ_FOREACH #undef SIMPLEQ_FOREACH_SAFE +#undef SIMPLEQ_HEAD +#undef SIMPLEQ_HEAD_INITIALIZER #undef SIMPLEQ_INIT +#undef SIMPLEQ_INSERT_AFTER #undef SIMPLEQ_INSERT_HEAD #undef SIMPLEQ_INSERT_TAIL -#undef SIMPLEQ_INSERT_AFTER +#undef SIMPLEQ_NEXT +#undef SIMPLEQ_REMOVE_AFTER #undef SIMPLEQ_REMOVE_HEAD -#undef TAILQ_HEAD -#undef TAILQ_HEAD_INITIALIZER +#undef SLIST_EMPTY +#undef SLIST_END +#undef SLIST_ENTRY +#undef SLIST_FIRST +#undef SLIST_FOREACH +#undef SLIST_FOREACH_PREVPTR +#undef SLIST_FOREACH_SAFE +#undef SLIST_HEAD +#undef SLIST_HEAD_INITIALIZER +#undef SLIST_INIT +#undef SLIST_INSERT_AFTER +#undef SLIST_INSERT_HEAD +#undef SLIST_NEXT +#undef SLIST_REMOVE +#undef SLIST_REMOVE_AFTER +#undef SLIST_REMOVE_HEAD +#undef SLIST_REMOVE_NEXT +#undef TAILQ_CONCAT +#undef TAILQ_EMPTY +#undef TAILQ_END #undef TAILQ_ENTRY #undef TAILQ_FIRST -#undef TAILQ_END -#undef TAILQ_NEXT -#undef TAILQ_LAST -#undef TAILQ_PREV -#undef TAILQ_EMPTY #undef TAILQ_FOREACH #undef TAILQ_FOREACH_REVERSE -#undef TAILQ_FOREACH_SAFE #undef TAILQ_FOREACH_REVERSE_SAFE +#undef TAILQ_FOREACH_SAFE +#undef TAILQ_HEAD +#undef TAILQ_HEAD_INITIALIZER #undef TAILQ_INIT -#undef TAILQ_INSERT_HEAD -#undef TAILQ_INSERT_TAIL #undef TAILQ_INSERT_AFTER #undef TAILQ_INSERT_BEFORE +#undef TAILQ_INSERT_HEAD +#undef TAILQ_INSERT_TAIL +#undef TAILQ_LAST +#undef TAILQ_NEXT +#undef TAILQ_PREV #undef TAILQ_REMOVE #undef TAILQ_REPLACE -#undef CIRCLEQ_HEAD -#undef CIRCLEQ_HEAD_INITIALIZER -#undef CIRCLEQ_ENTRY -#undef CIRCLEQ_FIRST -#undef CIRCLEQ_LAST -#undef CIRCLEQ_END -#undef CIRCLEQ_NEXT -#undef CIRCLEQ_PREV -#undef CIRCLEQ_EMPTY -#undef CIRCLEQ_FOREACH -#undef CIRCLEQ_FOREACH_REVERSE -#undef CIRCLEQ_INIT -#undef CIRCLEQ_INSERT_AFTER -#undef CIRCLEQ_INSERT_BEFORE -#undef CIRCLEQ_INSERT_HEAD -#undef CIRCLEQ_INSERT_TAIL -#undef CIRCLEQ_REMOVE -#undef CIRCLEQ_REPLACE /* * This file defines five types of data structures: singly-linked lists, -- cgit v1.2.3 From 32c63e75a70a0ed9d6887a55fcb0e4531a6ad617 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 4 Aug 2020 14:59:21 +1000 Subject: wrap a declaration in the same ifdefs as its use avoids warnings on NetBSD --- openbsd-compat/port-net.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openbsd-compat/port-net.c b/openbsd-compat/port-net.c index 617bffceb..d7d8c6fa1 100644 --- a/openbsd-compat/port-net.c +++ b/openbsd-compat/port-net.c @@ -209,8 +209,11 @@ sys_tun_open(int tun, int mode, char **ifname) { struct ifreq ifr; char name[100]; - int fd = -1, sock, flag; + int fd = -1, sock; const char *tunbase = "tun"; +#if defined(TUNSIFHEAD) && !defined(SSH_TUN_PREPEND_AF) + int flag; +#endif if (ifname != NULL) *ifname = NULL; @@ -247,8 +250,8 @@ sys_tun_open(int tun, int mode, char **ifname) } /* Turn on tunnel headers */ - flag = 1; #if defined(TUNSIFHEAD) && !defined(SSH_TUN_PREPEND_AF) + flag = 1; if (mode != SSH_TUNMODE_ETHERNET && ioctl(fd, TUNSIFHEAD, &flag) == -1) { debug("%s: ioctl(%d, TUNSIFHEAD, 1): %s", __func__, fd, -- cgit v1.2.3 From ea1f649046546a860f68b97ddc3015b7e44346ca Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 5 Aug 2020 08:58:57 +1000 Subject: support NetBSD's utmpx.ut_ss address field bz#960, ok dtucker --- configure.ac | 1 + loginrec.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/configure.ac b/configure.ac index 0a2eb0448..33a82814b 100644 --- a/configure.ac +++ b/configure.ac @@ -4207,6 +4207,7 @@ OSSH_CHECK_HEADER_FOR_FIELD([ut_exit], [utmp.h], [HAVE_EXIT_IN_UTMP]) OSSH_CHECK_HEADER_FOR_FIELD([ut_time], [utmp.h], [HAVE_TIME_IN_UTMP]) OSSH_CHECK_HEADER_FOR_FIELD([ut_time], [utmpx.h], [HAVE_TIME_IN_UTMPX]) OSSH_CHECK_HEADER_FOR_FIELD([ut_tv], [utmpx.h], [HAVE_TV_IN_UTMPX]) +OSSH_CHECK_HEADER_FOR_FIELD([ut_ss], [utmpx.h], [HAVE_SS_IN_UTMPX]) AC_CHECK_MEMBERS([struct stat.st_blksize]) AC_CHECK_MEMBERS([struct stat.st_mtim]) diff --git a/loginrec.c b/loginrec.c index e5289deb8..ea058fd6f 100644 --- a/loginrec.c +++ b/loginrec.c @@ -778,6 +778,9 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx) strncpy(utx->ut_host, li->hostname, MIN_SIZEOF(utx->ut_host, li->hostname)); # endif +# ifdef HAVE_SS_IN_UTMPX + utx->ut_ss = li->hostaddr.sa_storage; +# endif # ifdef HAVE_ADDR_IN_UTMPX /* this is just a 32-bit IP address */ if (li->hostaddr.sa.sa_family == AF_INET) -- cgit v1.2.3 From 9499f2bb01dc1032ae155999b2d7764b9491341f Mon Sep 17 00:00:00 2001 From: Stefan Schindler Date: Wed, 5 Aug 2020 19:00:52 +0200 Subject: Add CI with prepare script * Only use heimdal kerberos implementation * Fetch yubico/libfido2 (see: https://github.com/Yubico/libfido2) * Add one target for * all features * each feature alone * no features --- .github/setup_ci.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++ .github/workflows/c-cpp.yml | 38 +++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100755 .github/setup_ci.sh create mode 100644 .github/workflows/c-cpp.yml diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh new file mode 100755 index 000000000..237721ade --- /dev/null +++ b/.github/setup_ci.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash + +TARGETS=$@ + +PACKAGES="" +INSTALL_FIDO_PPA="no" + +#echo "Setting up for '$TARGETS'" + +set -ex + +lsb_release -a + +for TARGET in $TARGETS; do + case $TARGET in + "") + # nothing to do + ;; + "--with-kerberos5") + PACKAGES="$PACKAGES heimdal-dev" + #PACKAGES="$PACKAGES libkrb5-dev" + ;; + "--with-libedit") + PACKAGES="$PACKAGES libedit-dev" + ;; + "--with-pam") + PACKAGES="$PACKAGES libpam0g-dev" + ;; + "--with-security-key-builtin") + INSTALL_FIDO_PPA="yes" + PACKAGES="$PACKAGES libfido2-dev libu2f-host-dev" + ;; + "--with-selinux") + PACKAGES="$PACKAGES libselinux1-dev selinux-policy-dev" + ;; + *) echo "Invalid option" + exit 1 + ;; + esac +done + +if [ "yes" == "$INSTALL_FIDO_PPA" ]; then + sudo apt update -qq + sudo apt install software-properties-common + sudo apt-add-repository ppa:yubico/stable +fi + +if [ "x" != "x$PACKAGES" ]; then + sudo apt update -qq + sudo apt install -qy $PACKAGES +fi diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml new file mode 100644 index 000000000..f18f05a8a --- /dev/null +++ b/.github/workflows/c-cpp.yml @@ -0,0 +1,38 @@ +name: C/C++ CI + +on: + push: + branches: [ master, ci ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + configs: + - "" + - "--with-kerberos5" + - "--with-libedit" + - "--with-pam" + - "--with-security-key-builtin" + - "--with-selinux" + - "--with-kerberos5 --with-libedit --with-pam --with-security-key-builtin --with-selinux" + + steps: + - uses: actions/checkout@v2 + - name: setup CI system + run: ./.github/setup_ci.sh ${{ matrix.configs }} + - name: autoreconf + run: autoreconf + - name: configure + run: ./configure ${{ matrix.configs }} + - name: make + run: make + - name: make tests + run: make tests + env: + TEST_SSH_UNSAFE_PERMISSIONS: 1 -- cgit v1.2.3 From 651bb3a31949bbdc3a78b2ede95a77bce0c72984 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 7 Aug 2020 14:15:11 +1000 Subject: Add without-openssl without-zlib test target. --- .github/setup_ci.sh | 2 +- .github/workflows/c-cpp.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh index 237721ade..e2474ccd7 100755 --- a/.github/setup_ci.sh +++ b/.github/setup_ci.sh @@ -13,7 +13,7 @@ lsb_release -a for TARGET in $TARGETS; do case $TARGET in - "") + ""|--without-openssl|--without-zlib) # nothing to do ;; "--with-kerberos5") diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index f18f05a8a..6ea16196b 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -21,6 +21,7 @@ jobs: - "--with-security-key-builtin" - "--with-selinux" - "--with-kerberos5 --with-libedit --with-pam --with-security-key-builtin --with-selinux" + - "--without-openssl --without-zlib" steps: - uses: actions/checkout@v2 -- cgit v1.2.3 From c2ec7a07f8caabb4d8e00c66e7cd46bf2cd1e922 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 7 Aug 2020 14:21:15 +1000 Subject: Document --without-openssl and --without-zlib. --- INSTALL | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index 789be4823..39d3f818d 100644 --- a/INSTALL +++ b/INSTALL @@ -1,4 +1,3 @@ -1. Prerequisites ---------------- A C compiler. Any C89 or better compiler should work. Where supported, @@ -221,6 +220,11 @@ libraries are installed. --with-ssl-engine enables Libre/OpenSSL's (hardware) ENGINE support +--without-openssl builds without using OpenSSL. Only a subset of ciphers +and algorithms are supported in this configuration. + +--without-zlib builds without zlib. This disables the Compression option. + --with-4in6 Check for IPv4 in IPv6 mapped addresses and convert them to real (AF_INET) IPv4 addresses. Works around some quirks on Linux. -- cgit v1.2.3 From eb122b1eebe58b29a83a507ee814cbcf8aeded1b Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 7 Aug 2020 15:11:42 +1000 Subject: Add ability to specify exact test target. --- .github/run_test.sh | 23 +++++++++++++++++++++++ .github/workflows/c-cpp.yml | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100755 .github/run_test.sh diff --git a/.github/run_test.sh b/.github/run_test.sh new file mode 100755 index 000000000..f8a97f51f --- /dev/null +++ b/.github/run_test.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +TARGETS=$@ + +TEST_TARGET="tests" +LTESTS="" # all tests by default + +set -ex + +for TARGET in $TARGETS; do + case $TARGET in + --without-openssl) + # When built without OpenSSL we can't do the file-based RSA key tests. + TEST_TARGET=t-exec + ;; + esac +done + +if [ -z "$LTESTS" ]; then + make $TEST_TARGET +else + make $TEST_TARGET LTESTS="$LTESTS" +fi diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 6ea16196b..2189756bb 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -34,6 +34,6 @@ jobs: - name: make run: make - name: make tests - run: make tests + run: ./.github/run_test.sh ${{ matrix.configs }} env: TEST_SSH_UNSAFE_PERMISSIONS: 1 -- cgit v1.2.3 From a09e98dcae1e26f026029b7142b0e0d10130056f Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 7 Aug 2020 15:37:37 +1000 Subject: Output test debug logs on failure. --- .github/run_test.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/run_test.sh b/.github/run_test.sh index f8a97f51f..93c3a5e9e 100755 --- a/.github/run_test.sh +++ b/.github/run_test.sh @@ -18,6 +18,17 @@ done if [ -z "$LTESTS" ]; then make $TEST_TARGET + result=$? else make $TEST_TARGET LTESTS="$LTESTS" + result=$? +fi + +if [ "$result" -ne "0" ]; then + for i in regress/failed*; do + echo ------------------------------------------------------------------------- + echo LOGFILE $i + cat $i + echo ------------------------------------------------------------------------- + done fi -- cgit v1.2.3 From ed6bef77f5bb5b8f9ca2914478949e29f2f0a780 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 7 Aug 2020 17:12:16 +1000 Subject: Always send any PAM account messages. If the PAM account stack reaturns any messages, send them to the user not just if the check succeeds. bz#2049, ok djm@ --- auth2.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/auth2.c b/auth2.c index 91aaf34a6..242a7adbe 100644 --- a/auth2.c +++ b/auth2.c @@ -390,20 +390,20 @@ userauth_finish(struct ssh *ssh, int authenticated, const char *method, #ifdef USE_PAM if (options.use_pam && authenticated) { - int r; - - if (!PRIVSEP(do_pam_account())) { - /* if PAM returned a message, send it to the user */ - if (sshbuf_len(loginmsg) > 0) { - if ((r = sshbuf_put(loginmsg, "\0", 1)) != 0) - fatal("%s: buffer error: %s", - __func__, ssh_err(r)); - userauth_send_banner(ssh, sshbuf_ptr(loginmsg)); - if ((r = ssh_packet_write_wait(ssh)) != 0) { - sshpkt_fatal(ssh, r, - "%s: send PAM banner", __func__); - } + int r, success = PRIVSEP(do_pam_account()); + + /* If PAM returned a message, send it to the user. */ + if (sshbuf_len(loginmsg) > 0) { + if ((r = sshbuf_put(loginmsg, "\0", 1)) != 0) + fatal("%s: buffer error: %s", + __func__, ssh_err(r)); + userauth_send_banner(ssh, sshbuf_ptr(loginmsg)); + if ((r = ssh_packet_write_wait(ssh)) != 0) { + sshpkt_fatal(ssh, r, + "%s: send PAM banner", __func__); } + } + if (!success) { fatal("Access denied for user %s by PAM account " "configuration", authctxt->user); } -- cgit v1.2.3 From eaf2765efe8bc74feba85c34295d067637fc6635 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Mon, 10 Aug 2020 13:24:09 +1000 Subject: sync memmem.c with OpenBSD --- openbsd-compat/memmem.c | 214 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 167 insertions(+), 47 deletions(-) diff --git a/openbsd-compat/memmem.c b/openbsd-compat/memmem.c index 3e5e6b5e6..eb64eaab8 100644 --- a/openbsd-compat/memmem.c +++ b/openbsd-compat/memmem.c @@ -1,30 +1,26 @@ -/* $OpenBSD: memmem.c,v 1.4 2015/08/31 02:53:57 guenther Exp $ */ -/*- - * Copyright (c) 2005 Pascal Gloor +/* $OpenBSD: memmem.c,v 1.5 2020/04/16 12:39:28 claudio Exp $ */ + +/* + * Copyright (c) 2005-2020 Rich Felker, et al. * - * 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. - * 3. The name of the author may not be used to endorse or promote - * products derived from this software without specific prior written - * permission. + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``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 OR CONTRIBUTORS 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. + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include "includes.h" @@ -32,38 +28,162 @@ #ifndef HAVE_MEMMEM #include +#include + +static char * +twobyte_memmem(const unsigned char *h, size_t k, const unsigned char *n) +{ + uint16_t nw = n[0]<<8 | n[1], hw = h[0]<<8 | h[1]; + for (h+=2, k-=2; k; k--, hw = hw<<8 | *h++) + if (hw == nw) return (char *)h-2; + return hw == nw ? (char *)h-2 : 0; +} + +static char * +threebyte_memmem(const unsigned char *h, size_t k, const unsigned char *n) +{ + uint32_t nw = n[0]<<24 | n[1]<<16 | n[2]<<8; + uint32_t hw = h[0]<<24 | h[1]<<16 | h[2]<<8; + for (h+=3, k-=3; k; k--, hw = (hw|*h++)<<8) + if (hw == nw) return (char *)h-3; + return hw == nw ? (char *)h-3 : 0; +} + +static char * +fourbyte_memmem(const unsigned char *h, size_t k, const unsigned char *n) +{ + uint32_t nw = n[0]<<24 | n[1]<<16 | n[2]<<8 | n[3]; + uint32_t hw = h[0]<<24 | h[1]<<16 | h[2]<<8 | h[3]; + for (h+=4, k-=4; k; k--, hw = hw<<8 | *h++) + if (hw == nw) return (char *)h-4; + return hw == nw ? (char *)h-4 : 0; +} + +#define MAX(a,b) ((a)>(b)?(a):(b)) +#define MIN(a,b) ((a)<(b)?(a):(b)) + +#define BITOP(a,b,op) \ + ((a)[(size_t)(b)/(8*sizeof *(a))] op (size_t)1<<((size_t)(b)%(8*sizeof *(a)))) /* - * Find the first occurrence of the byte string s in byte string l. + * Maxime Crochemore and Dominique Perrin, Two-way string-matching, + * Journal of the ACM, 38(3):651-675, July 1991. */ - -void * -memmem(const void *l, size_t l_len, const void *s, size_t s_len) +static char * +twoway_memmem(const unsigned char *h, const unsigned char *z, + const unsigned char *n, size_t l) { - const char *cur, *last; - const char *cl = l; - const char *cs = s; + size_t i, ip, jp, k, p, ms, p0, mem, mem0; + size_t byteset[32 / sizeof(size_t)] = { 0 }; + size_t shift[256]; + + /* Computing length of needle and fill shift table */ + for (i=0; i n[jp+k]) { + jp += k; + k = 1; + p = jp - ip; + } else { + ip = jp++; + k = p = 1; + } + } + ms = ip; + p0 = p; + + /* And with the opposite comparison */ + ip = -1; jp = 0; k = p = 1; + while (jp+k ms+1) ms = ip; + else p = p0; - /* a zero length needle should just return the haystack */ - if (s_len == 0) - return (void *)cl; + /* Periodic needle? */ + if (memcmp(n, n+p, ms+1)) { + mem0 = 0; + p = MAX(ms, l-ms-1) + 1; + } else mem0 = l-p; + mem = 0; - /* "s" must be smaller or equal to "l" */ - if (l_len < s_len) - return NULL; + /* Search loop */ + for (;;) { + /* If remainder of haystack is shorter than needle, done */ + if (z-h < l) return 0; + + /* Check last byte first; advance by shift on mismatch */ + if (BITOP(byteset, h[l-1], &)) { + k = l-shift[h[l-1]]; + if (k) { + if (k < mem) k = mem; + h += k; + mem = 0; + continue; + } + } else { + h += l; + mem = 0; + continue; + } + + /* Compare right half */ + for (k=MAX(ms+1,mem); kmem && n[k-1] == h[k-1]; k--); + if (k <= mem) return (char *)h; + h += p; + mem = mem0; + } +} + +void * +memmem(const void *h0, size_t k, const void *n0, size_t l) +{ + const unsigned char *h = h0, *n = n0; - /* special case where s_len == 1 */ - if (s_len == 1) - return memchr(l, *cs, l_len); + /* Return immediately on empty needle */ + if (!l) return (void *)h; - /* the last position where its possible to find "s" in "l" */ - last = cl + l_len - s_len; + /* Return immediately when needle is longer than haystack */ + if (k Date: Mon, 17 Aug 2020 21:34:32 +1000 Subject: Wrap stdint.h include in ifdef HAVE_STDINT_H. --- openbsd-compat/memmem.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openbsd-compat/memmem.c b/openbsd-compat/memmem.c index eb64eaab8..ac1243eb0 100644 --- a/openbsd-compat/memmem.c +++ b/openbsd-compat/memmem.c @@ -28,7 +28,9 @@ #ifndef HAVE_MEMMEM #include +#ifdef HAVE_STDINT_H #include +#endif static char * twobyte_memmem(const unsigned char *h, size_t k, const unsigned char *n) -- cgit v1.2.3 From eaf8672b1b52db2815a229745f4e4b08681bed6d Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 21 Aug 2020 00:04:13 +1000 Subject: Remove check for 'ent' command. It was added in 8d1fd57a9 for measuring entropy of ssh_prng_cmds which has long since been removed and there are no other references to it. --- Makefile.in | 1 - configure.ac | 2 -- 2 files changed, 3 deletions(-) diff --git a/Makefile.in b/Makefile.in index 30a7fff2d..6e72136c5 100644 --- a/Makefile.in +++ b/Makefile.in @@ -57,7 +57,6 @@ AWK=@AWK@ RANLIB=@RANLIB@ INSTALL=@INSTALL@ SED=@SED@ -ENT=@ENT@ XAUTH_PATH=@XAUTH_PATH@ LDFLAGS=-L. -Lopenbsd-compat/ @LDFLAGS@ LDFLAGS_NOPIE=-L. -Lopenbsd-compat/ @LDFLAGS_NOPIE@ diff --git a/configure.ac b/configure.ac index 33a82814b..0f15ef2bf 100644 --- a/configure.ac +++ b/configure.ac @@ -33,8 +33,6 @@ AC_CHECK_TOOLS([AR], [ar]) AC_PATH_PROG([CAT], [cat]) AC_PATH_PROG([KILL], [kill]) AC_PATH_PROG([SED], [sed]) -AC_PATH_PROG([ENT], [ent]) -AC_SUBST([ENT]) AC_PATH_PROG([TEST_MINUS_S_SH], [bash]) AC_PATH_PROG([TEST_MINUS_S_SH], [ksh]) AC_PATH_PROG([TEST_MINUS_S_SH], [sh]) -- cgit v1.2.3 From e9c2002891a7b8e66f4140557a982978f372e5a3 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 11 Aug 2020 09:45:54 +0000 Subject: upstream: let the "Confirm user presence for key ..." ssh-askpass notification respect $SSH_ASKPASS_REQUIRE; ok markus@ OpenBSD-Commit-ID: 7c1a616b348779bda3b9ad46bf592741f8e206c1 --- readpass.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/readpass.c b/readpass.c index 69edce306..122d2a87c 100644 --- a/readpass.c +++ b/readpass.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readpass.c,v 1.62 2020/07/14 23:57:01 djm Exp $ */ +/* $OpenBSD: readpass.c,v 1.63 2020/08/11 09:45:54 djm Exp $ */ /* * Copyright (c) 2001 Markus Friedl. All rights reserved. * @@ -235,8 +235,8 @@ notify_start(int force_askpass, const char *fmt, ...) int devnull; pid_t pid; void (*osigchld)(int); - const char *askpass; - struct notifier_ctx *ret; + const char *askpass, *s; + struct notifier_ctx *ret = NULL; va_start(args, fmt); xvasprintf(&prompt, fmt, args); @@ -248,15 +248,19 @@ notify_start(int force_askpass, const char *fmt, ...) (void)write(STDERR_FILENO, "\r", 1); (void)write(STDERR_FILENO, prompt, strlen(prompt)); (void)write(STDERR_FILENO, "\r\n", 2); - free(prompt); - return NULL; + goto out; } if ((askpass = getenv("SSH_ASKPASS")) == NULL) askpass = _PATH_SSH_ASKPASS_DEFAULT; - if (getenv("DISPLAY") == NULL || *askpass == '\0') { - debug3("%s: cannot notify", __func__); - free(prompt); - return NULL; + if (*askpass == '\0') { + debug3("%s: cannot notify: no askpass", __func__); + goto out; + } + if (getenv("DISPLAY") == NULL && + ((s = getenv(SSH_ASKPASS_REQUIRE_ENV)) == NULL || + strcmp(s, "force") != 0)) { + debug3("%s: cannot notify: no display", __func__); + goto out; } osigchld = ssh_signal(SIGCHLD, SIG_DFL); if ((pid = fork()) == -1) { @@ -284,6 +288,7 @@ notify_start(int force_askpass, const char *fmt, ...) } ret->pid = pid; ret->osigchld = osigchld; + out: free(prompt); return ret; } -- cgit v1.2.3 From d0a195c89e26766d3eb8f3e4e2a00ebc98b57795 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Tue, 11 Aug 2020 09:49:57 +0000 Subject: upstream: let ssh_config(5)'s AddKeysToAgent keyword accept a time limit for keys in addition to its current flag options. Time-limited keys will automatically be removed from ssh-agent after their expiry time has passed; ok markus@ OpenBSD-Commit-ID: 792e71cacbbc25faab5424cf80bee4a006119f94 --- readconf.c | 85 ++++++++++++++++++++++++++++++++++++++++++++++++------------ readconf.h | 3 ++- ssh_config.5 | 23 +++++++++++----- sshconnect.c | 5 ++-- 4 files changed, 89 insertions(+), 27 deletions(-) diff --git a/readconf.c b/readconf.c index a810736a4..94b67e1c6 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.333 2020/07/17 07:09:24 dtucker Exp $ */ +/* $OpenBSD: readconf.c,v 1.334 2020/08/11 09:49:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -877,6 +877,21 @@ static const struct multistate multistate_compression[] = { { NULL, -1 } }; +static int +parse_multistate_value(const char *arg, const char *filename, int linenum, + const struct multistate *multistate_ptr) +{ + int i; + + if (!arg || *arg == '\0') + fatal("%s line %d: missing argument.", filename, linenum); + for (i = 0; multistate_ptr[i].key != NULL; i++) { + if (strcasecmp(arg, multistate_ptr[i].key) == 0) + return multistate_ptr[i].value; + } + return -1; +} + /* * Processes a single option line as used in the configuration files. This * only sets those values that have not already been set. @@ -1000,19 +1015,11 @@ parse_time: multistate_ptr = multistate_flag; parse_multistate: arg = strdelim(&s); - if (!arg || *arg == '\0') - fatal("%s line %d: missing argument.", - filename, linenum); - value = -1; - for (i = 0; multistate_ptr[i].key != NULL; i++) { - if (strcasecmp(arg, multistate_ptr[i].key) == 0) { - value = multistate_ptr[i].value; - break; - } - } - if (value == -1) + if ((value = parse_multistate_value(arg, filename, linenum, + multistate_ptr)) == -1) { fatal("%s line %d: unsupported option \"%s\".", filename, linenum, arg); + } if (*activep && *intptr == -1) *intptr = value; break; @@ -1800,9 +1807,42 @@ parse_keytypes: goto parse_keytypes; case oAddKeysToAgent: - intptr = &options->add_keys_to_agent; - multistate_ptr = multistate_yesnoaskconfirm; - goto parse_multistate; + arg = strdelim(&s); + arg2 = strdelim(&s); + value = parse_multistate_value(arg, filename, linenum, + multistate_yesnoaskconfirm); + value2 = 0; /* unlimited lifespan by default */ + if (value == 3 && arg2 != NULL) { + /* allow "AddKeysToAgent confirm 5m" */ + if ((value2 = convtime(arg2)) == -1 || value2 > INT_MAX) + fatal("%s line %d: invalid time value.", + filename, linenum); + } else if (value == -1 && arg2 == NULL) { + if ((value2 = convtime(arg)) == -1 || value2 > INT_MAX) + fatal("%s line %d: unsupported option", + filename, linenum); + value = 1; /* yes */ + } else if (value == -1 || arg2 != NULL) { + fatal("%s line %d: unsupported option", + filename, linenum); + } + if (*activep && options->add_keys_to_agent == -1) { + options->add_keys_to_agent = value; + options->add_keys_to_agent_lifespan = value2; + } + break; + + arg = strdelim(&s); + if (!arg || *arg == '\0') + fatal("%s line %d: missing time value.", + filename, linenum); + if (strcmp(arg, "none") == 0) + value = -1; + else if ((value = convtime(arg)) == -1 || value > INT_MAX) + fatal("%s line %d: invalid time value.", + filename, linenum); + if (*activep && *intptr == -1) + *intptr = value; case oIdentityAgent: charptr = &options->identity_agent; @@ -2016,6 +2056,7 @@ initialize_options(Options * options) options->permit_local_command = -1; options->remote_command = NULL; options->add_keys_to_agent = -1; + options->add_keys_to_agent_lifespan = -1; options->identity_agent = NULL; options->visual_host_key = -1; options->ip_qos_interactive = -1; @@ -2123,8 +2164,10 @@ fill_default_options(Options * options) if (options->number_of_password_prompts == -1) options->number_of_password_prompts = 3; /* options->hostkeyalgorithms, default set in myproposals.h */ - if (options->add_keys_to_agent == -1) + if (options->add_keys_to_agent == -1) { options->add_keys_to_agent = 0; + options->add_keys_to_agent_lifespan = 0; + } 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); @@ -2728,7 +2771,6 @@ dump_client_config(Options *o, const char *host) dump_cfg_int(oPort, o->port); /* Flag options */ - dump_cfg_fmtint(oAddKeysToAgent, o->add_keys_to_agent); dump_cfg_fmtint(oAddressFamily, o->address_family); dump_cfg_fmtint(oBatchMode, o->batch_mode); dump_cfg_fmtint(oCanonicalizeFallbackLocal, o->canonicalize_fallback_local); @@ -2816,6 +2858,15 @@ dump_client_config(Options *o, const char *host) /* Special cases */ + /* AddKeysToAgent */ + if (o->add_keys_to_agent_lifespan <= 0) + dump_cfg_fmtint(oAddKeysToAgent, o->add_keys_to_agent); + else { + printf("addkeystoagent%s %d\n", + o->add_keys_to_agent == 3 ? " confirm" : "", + o->add_keys_to_agent_lifespan); + } + /* oForwardAgent */ if (o->forward_agent_sock_path == NULL) dump_cfg_fmtint(oForwardAgent, o->forward_agent); diff --git a/readconf.h b/readconf.h index e143a1082..d6a15550d 100644 --- a/readconf.h +++ b/readconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.h,v 1.133 2020/04/03 02:27:12 dtucker Exp $ */ +/* $OpenBSD: readconf.h,v 1.134 2020/08/11 09:49:57 djm Exp $ */ /* * Author: Tatu Ylonen @@ -97,6 +97,7 @@ typedef struct { struct sshkey *certificates[SSH_MAX_CERTIFICATE_FILES]; int add_keys_to_agent; + int add_keys_to_agent_lifespan; char *identity_agent; /* Optional path to ssh-agent socket */ /* Local TCP/IP forward requests. */ diff --git a/ssh_config.5 b/ssh_config.5 index 2b635410f..6be1f1aa2 100644 --- a/ssh_config.5 +++ b/ssh_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: ssh_config.5,v 1.331 2020/07/17 05:59:05 jmc Exp $ -.Dd $Mdocdate: July 17 2020 $ +.\" $OpenBSD: ssh_config.5,v 1.332 2020/08/11 09:49:57 djm Exp $ +.Dd $Mdocdate: August 11 2020 $ .Dt SSH_CONFIG 5 .Os .Sh NAME @@ -245,13 +245,22 @@ option was specified to If this option is set to .Cm no , no keys are added to the agent. +Alternately, this option may be specified as a time interval +using the format described in the +.Sx TIME FORMATS +section of +.Xr sshd_config 5 +to specify the key's lifetime in +.Xr ssh-agent 1 , +after which it will automatically be removed. The argument must be -.Cm yes , -.Cm confirm , -.Cm ask , -or .Cm no -(the default). +(the default), +.Cm yes , +.Cm confirm +(optionally followed by a time interval), +.Cm ask +or a time interval. .It Cm AddressFamily Specifies which address family to use when connecting. Valid arguments are diff --git a/sshconnect.c b/sshconnect.c index f6d8a1bcf..63a97d039 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.330 2020/07/17 03:43:42 dtucker Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.331 2020/08/11 09:49:57 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1433,7 +1433,8 @@ maybe_add_key_to_agent(const char *authfile, struct sshkey *private, if (sshkey_is_sk(private)) skprovider = options.sk_provider; if ((r = ssh_add_identity_constrained(auth_sock, private, - comment == NULL ? authfile : comment, 0, + comment == NULL ? authfile : comment, + options.add_keys_to_agent_lifespan, (options.add_keys_to_agent == 3), 0, skprovider)) == 0) debug("identity added to agent: %s", authfile); else -- cgit v1.2.3 From 1196d7f49d4fbc90f37e550de3056561613b0960 Mon Sep 17 00:00:00 2001 From: "cheloha@openbsd.org" Date: Wed, 12 Aug 2020 01:23:45 +0000 Subject: upstream: ssh-keyscan(1): simplify conloop() with timercmp(3), timersub(3); ok djm@ OpenBSD-Commit-ID: a102acb544f840d33ad73d40088adab4a687fa27 --- ssh-keyscan.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/ssh-keyscan.c b/ssh-keyscan.c index a5e644076..ca190428a 100644 --- a/ssh-keyscan.c +++ b/ssh-keyscan.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keyscan.c,v 1.131 2019/12/15 19:47:10 djm Exp $ */ +/* $OpenBSD: ssh-keyscan.c,v 1.132 2020/08/12 01:23:45 cheloha Exp $ */ /* * Copyright 1995, 1996 by David Mazieres . * @@ -584,16 +584,9 @@ conloop(void) monotime_tv(&now); c = TAILQ_FIRST(&tq); - if (c && (c->c_tv.tv_sec > now.tv_sec || - (c->c_tv.tv_sec == now.tv_sec && c->c_tv.tv_usec > now.tv_usec))) { - seltime = c->c_tv; - seltime.tv_sec -= now.tv_sec; - seltime.tv_usec -= now.tv_usec; - if (seltime.tv_usec < 0) { - seltime.tv_usec += 1000000; - seltime.tv_sec--; - } - } else + if (c && timercmp(&c->c_tv, &now, >)) + timersub(&c->c_tv, &now, &seltime); + else timerclear(&seltime); r = xcalloc(read_wait_nfdset, sizeof(fd_mask)); @@ -616,8 +609,7 @@ conloop(void) free(e); c = TAILQ_FIRST(&tq); - while (c && (c->c_tv.tv_sec < now.tv_sec || - (c->c_tv.tv_sec == now.tv_sec && c->c_tv.tv_usec < now.tv_usec))) { + while (c && timercmp(&c->c_tv, &now, <)) { int s = c->c_fd; c = TAILQ_NEXT(c, c_link); -- cgit v1.2.3 From 9b8ad93824c682ce841f53f3b5762cef4e7cc4dc Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:06:18 +0000 Subject: upstream: support for user-verified FIDO keys FIDO2 supports a notion of "user verification" where the user is required to demonstrate their identity to the token before particular operations (e.g. signing). Typically this is done by authenticating themselves using a PIN that has been set on the token. This adds support for generating and using user verified keys where the verification happens via PIN (other options might be added in the future, but none are in common use now). Practically, this adds another key generation option "verify-required" that yields a key that requires a PIN before each authentication. feedback markus@ and Pedro Martelletto; ok markus@ OpenBSD-Commit-ID: 57fd461e4366f87c47502c5614ec08573e6d6a15 --- krl.c | 7 ++++--- monitor.c | 4 ++-- monitor_wrap.c | 4 ++-- monitor_wrap.h | 5 +++-- sk-usbhid.c | 38 ++++++++++++++++++++++++++------------ ssh-agent.c | 5 +++-- ssh-keygen.1 | 22 +++++++++++++++++++--- ssh-keygen.c | 55 +++++++++++++++++++++++++++++++++++++++---------------- ssh-keysign.c | 4 ++-- ssh_api.c | 10 +++++----- sshconnect2.c | 37 ++++++++++++++++++++++++------------- sshd.c | 8 ++++---- sshkey.c | 20 +++++++++++--------- sshkey.h | 11 ++++++----- sshsig.c | 16 +++++++++------- sshsig.h | 8 +++++--- 16 files changed, 164 insertions(+), 90 deletions(-) diff --git a/krl.c b/krl.c index c431f7047..3a69b636a 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.50 2020/04/03 05:48:57 djm Exp $ */ +/* $OpenBSD: krl.c,v 1.51 2020/08/27 01:06:18 djm Exp $ */ #include "includes.h" @@ -812,9 +812,10 @@ ssh_krl_to_blob(struct ssh_krl *krl, struct sshbuf *buf, if ((r = sshbuf_put_u8(buf, KRL_SECTION_SIGNATURE)) != 0 || (r = sshkey_puts(sign_keys[i], buf)) != 0) goto out; - + /* XXX support sk-* keys */ if ((r = sshkey_sign(sign_keys[i], &sblob, &slen, - sshbuf_ptr(buf), sshbuf_len(buf), NULL, NULL, 0)) != 0) + sshbuf_ptr(buf), sshbuf_len(buf), NULL, NULL, + NULL, 0)) != 0) goto out; KRL_DBG(("%s: signature sig len %zu", __func__, slen)); if ((r = sshbuf_put_string(buf, sblob, slen)) != 0) diff --git a/monitor.c b/monitor.c index 0107a7eba..7c3e6aafe 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.212 2020/07/07 02:47:21 deraadt Exp $ */ +/* $OpenBSD: monitor.c,v 1.213 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -679,7 +679,7 @@ mm_answer_sign(struct ssh *ssh, int sock, struct sshbuf *m) if ((key = get_hostkey_by_index(keyid)) != NULL) { if ((r = sshkey_sign(key, &signature, &siglen, p, datlen, alg, - options.sk_provider, compat)) != 0) + options.sk_provider, NULL, compat)) != 0) fatal("%s: sshkey_sign failed: %s", __func__, ssh_err(r)); } else if ((key = get_hostkey_public_by_index(keyid, ssh)) != NULL && diff --git a/monitor_wrap.c b/monitor_wrap.c index 001a8fa1c..5e38d83eb 100644 --- a/monitor_wrap.c +++ b/monitor_wrap.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.c,v 1.117 2019/12/15 18:57:30 djm Exp $ */ +/* $OpenBSD: monitor_wrap.c,v 1.118 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -216,7 +216,7 @@ mm_choose_dh(int min, int nbits, int max) int mm_sshkey_sign(struct ssh *ssh, struct sshkey *key, u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, const char *hostkey_alg, - const char *sk_provider, u_int compat) + const char *sk_provider, const char *sk_pin, u_int compat) { struct kex *kex = *pmonitor->m_pkex; struct sshbuf *m; diff --git a/monitor_wrap.h b/monitor_wrap.h index 23ab096aa..0db38c206 100644 --- a/monitor_wrap.h +++ b/monitor_wrap.h @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor_wrap.h,v 1.44 2019/11/25 00:51:37 djm Exp $ */ +/* $OpenBSD: monitor_wrap.h,v 1.45 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright 2002 Niels Provos @@ -46,7 +46,8 @@ int mm_is_monitor(void); DH *mm_choose_dh(int, int, int); #endif int mm_sshkey_sign(struct ssh *, struct sshkey *, u_char **, size_t *, - const u_char *, size_t, const char *, const char *, u_int compat); + const u_char *, size_t, const char *, const char *, + const char *, u_int compat); void mm_inform_authserv(char *, char *); struct passwd *mm_getpwnamallow(struct ssh *, const char *); char *mm_auth2_read_banner(void); diff --git a/sk-usbhid.c b/sk-usbhid.c index 2a573caa2..1dd834883 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -163,7 +163,8 @@ pick_first_device(void) /* Check if the specified key handle exists on a given device. */ static int try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, - const char *application, const uint8_t *key_handle, size_t key_handle_len) + const char *application, const uint8_t *key_handle, size_t key_handle_len, + uint8_t flags, const char *pin) { fido_assert_t *assert = NULL; int r = FIDO_ERR_INTERNAL; @@ -191,7 +192,7 @@ try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, skdebug(__func__, "fido_assert_up: %s", fido_strerr(r)); goto out; } - r = fido_dev_get_assert(dev, assert, NULL); + r = fido_dev_get_assert(dev, assert, pin); skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); if (r == FIDO_ERR_USER_PRESENCE_REQUIRED) { /* U2F tokens may return this */ @@ -206,7 +207,8 @@ try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, /* Iterate over configured devices looking for a specific key handle */ static fido_dev_t * find_device(const char *path, const uint8_t *message, size_t message_len, - const char *application, const uint8_t *key_handle, size_t key_handle_len) + const char *application, const uint8_t *key_handle, size_t key_handle_len, + uint8_t flags, const char *pin) { fido_dev_info_t *devlist = NULL; fido_dev_t *dev = NULL; @@ -260,7 +262,7 @@ find_device(const char *path, const uint8_t *message, size_t message_len, continue; } if (try_device(dev, message, message_len, application, - key_handle, key_handle_len) == 0) { + key_handle, key_handle_len, flags, pin) == 0) { skdebug(__func__, "found key"); break; } @@ -570,19 +572,23 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "fido_dev_open: %s", fido_strerr(r)); goto out; } - if ((flags & SSH_SK_RESIDENT_KEY) != 0) { + if ((flags & (SSH_SK_RESIDENT_KEY|SSH_SK_USER_VERIFICATION_REQD)) != 0) { if (check_sk_extensions(dev, "credProtect", &credprot) < 0) { skdebug(__func__, "check_sk_extensions failed"); goto out; } if (credprot == 0) { skdebug(__func__, "refusing to create unprotected " - "resident key"); + "resident/verify-required key"); ret = SSH_SK_ERR_UNSUPPORTED; goto out; } - if ((r = fido_cred_set_prot(cred, - FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID)) != FIDO_OK) { + if ((flags & SSH_SK_USER_VERIFICATION_REQD)) + credprot = FIDO_CRED_PROT_UV_REQUIRED; + else + credprot = FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID; + + if ((r = fido_cred_set_prot(cred, credprot)) != FIDO_OK) { skdebug(__func__, "fido_cred_set_prot: %s", fido_strerr(r)); ret = fidoerr_to_skerr(r); @@ -826,7 +832,7 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, goto out; } if ((dev = find_device(device, message, sizeof(message), - application, key_handle, key_handle_len)) == NULL) { + application, key_handle, key_handle_len, flags, pin)) == NULL) { skdebug(__func__, "couldn't find device for key handle"); goto out; } @@ -855,8 +861,15 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, skdebug(__func__, "fido_assert_set_up: %s", fido_strerr(r)); goto out; } - if ((r = fido_dev_get_assert(dev, assert, NULL)) != FIDO_OK) { + if (pin == NULL && (flags & SSH_SK_USER_VERIFICATION_REQD) && + (r = fido_assert_set_uv(assert, FIDO_OPT_TRUE)) != FIDO_OK) { + skdebug(__func__, "fido_assert_set_uv: %s", fido_strerr(r)); + ret = FIDO_ERR_PIN_REQUIRED; + goto out; + } + if ((r = fido_dev_get_assert(dev, assert, pin)) != FIDO_OK) { skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); + ret = fidoerr_to_skerr(r); goto out; } if ((response = calloc(1, sizeof(*response))) == NULL) { @@ -978,8 +991,9 @@ read_rks(const char *devpath, const char *pin, continue; } skdebug(__func__, "Device %s RP \"%s\" slot %zu: " - "type %d", devpath, fido_credman_rp_id(rp, i), j, - fido_cred_type(cred)); + "type %d flags 0x%02x prot 0x%02x", devpath, + fido_credman_rp_id(rp, i), j, fido_cred_type(cred), + fido_cred_flags(cred), fido_cred_prot(cred)); /* build response entry */ if ((srk = calloc(1, sizeof(*srk))) == NULL || diff --git a/ssh-agent.c b/ssh-agent.c index 5f7ac8b91..d24a63089 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.262 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.263 2020/08/27 01:06:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -407,9 +407,10 @@ process_sign_request2(SocketEntry *e) sshkey_type(id->key), fp); } } + /* XXX support PIN required FIDO keys */ if ((r = sshkey_sign(id->key, &signature, &slen, data, dlen, agent_decode_alg(key, flags), - id->sk_provider, compat)) != 0) { + id->sk_provider, NULL, compat)) != 0) { error("%s: sshkey_sign: %s", __func__, ssh_err(r)); goto send; } diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 9198a511f..7e0558fe1 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.205 2020/07/15 07:50:46 solene Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.206 2020/08/27 01:06:18 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: July 15 2020 $ +.Dd $Mdocdate: August 27 2020 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME @@ -511,6 +511,12 @@ A username to be associated with a resident key, overriding the empty default username. Specifying a username may be useful when generating multiple resident keys for the same application name. +.It Cm verify-required +Indicate that this private key should require user verification for +each signature. +Not all FIDO tokens support support this option. +Currently PIN authentication is the only supported verification method, +but other methods may be supported in the future. .It Cm write-attestation Ns = Ns Ar path May be used at key generation time to record the attestation certificate returned from FIDO tokens during key generation. @@ -961,7 +967,7 @@ by Allows X11 forwarding. .Pp .It Ic no-touch-required -Do not require signatures made using this key require demonstration +Do not require signatures made using this key include demonstration of user presence (e.g. by having the user touch the authenticator). This option only makes sense for the FIDO authenticator algorithms .Cm ecdsa-sk @@ -974,6 +980,16 @@ The .Ar address_list is a comma-separated list of one or more address/netmask pairs in CIDR format. +.Pp +.It Ic verify-required +Require signatures made using this key indicate that the user was first +verified. +This option only makes sense for the FIDO authenticator algorithms +.Cm ecdsa-sk +and +.Cm ed25519-sk . +Currently PIN authentication is the only supported verification method, +but other methods may be supported in the future. .El .Pp At present, no standard options are valid for host keys. diff --git a/ssh-keygen.c b/ssh-keygen.c index cc092368e..89ef9a143 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.415 2020/08/03 02:53:51 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.416 2020/08/27 01:06:18 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -589,7 +589,7 @@ do_convert_private_ssh2(struct sshbuf *b) /* try the key */ if (sshkey_sign(key, &sig, &slen, data, sizeof(data), - NULL, NULL, 0) != 0 || + NULL, NULL, NULL, 0) != 0 || sshkey_verify(key, sig, slen, data, sizeof(data), NULL, 0, NULL) != 0) { sshkey_free(key); @@ -1727,7 +1727,8 @@ load_pkcs11_key(char *path) static int agent_signer(struct sshkey *key, u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, - const char *alg, const char *provider, u_int compat, void *ctx) + const char *alg, const char *provider, const char *pin, + u_int compat, void *ctx) { int *agent_fdp = (int *)ctx; @@ -1744,7 +1745,7 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, u_int n; struct sshkey *ca, *public; char valid[64], *otmp, *tmp, *cp, *out, *comment; - char *ca_fp = NULL, **plist = NULL; + char *ca_fp = NULL, **plist = NULL, *pin = NULL; struct ssh_identitylist *agent_ids; size_t j; struct notifier_ctx *notifier = NULL; @@ -1785,6 +1786,12 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, } else { /* CA key is assumed to be a private key on the filesystem */ ca = load_identity(tmp, NULL); + if (sshkey_is_sk(ca) && + (ca->sk_flags & SSH_SK_USER_VERIFICATION_REQD)) { + if ((pin = read_passphrase("Enter PIN for CA key: ", + RP_ALLOW_STDIN)) == NULL) + fatal("%s: couldn't read PIN", __func__); + } } free(tmp); @@ -1844,7 +1851,7 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, if (agent_fd != -1 && (ca->flags & SSHKEY_FLAG_EXT) != 0) { if ((r = sshkey_certify_custom(public, ca, - key_type_name, sk_provider, agent_signer, + key_type_name, sk_provider, NULL, agent_signer, &agent_fd)) != 0) fatal("Couldn't certify key %s via agent: %s", tmp, ssh_err(r)); @@ -1856,7 +1863,7 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, sshkey_type(ca), ca_fp); } r = sshkey_certify(public, ca, key_type_name, - sk_provider); + sk_provider, pin); notify_complete(notifier); if (r != 0) fatal("Couldn't certify key %s: %s", @@ -1890,6 +1897,8 @@ do_ca_sign(struct passwd *pw, const char *ca_key_path, int prefer_agent, if (cert_serial_autoinc) cert_serial++; } + if (pin != NULL) + freezero(pin, strlen(pin)); free(ca_fp); #ifdef ENABLE_PKCS11 pkcs11_terminate(); @@ -2526,6 +2535,7 @@ sign_one(struct sshkey *signkey, const char *filename, int fd, struct sshbuf *sigbuf = NULL, *abuf = NULL; int r = SSH_ERR_INTERNAL_ERROR, wfd = -1, oerrno; char *wfile = NULL, *asig = NULL, *fp = NULL; + char *pin = NULL, *prompt = NULL; if (!quiet) { if (fd == STDIN_FILENO) @@ -2533,17 +2543,25 @@ sign_one(struct sshkey *signkey, const char *filename, int fd, else fprintf(stderr, "Signing file %s\n", filename); } - if (signer == NULL && sshkey_is_sk(signkey) && - (signkey->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { - if ((fp = sshkey_fingerprint(signkey, fingerprint_hash, - SSH_FP_DEFAULT)) == NULL) - fatal("%s: sshkey_fingerprint failed", __func__); - fprintf(stderr, "Confirm user presence for key %s %s\n", - sshkey_type(signkey), fp); - free(fp); + if (signer == NULL && sshkey_is_sk(signkey)) { + if ((signkey->sk_flags & SSH_SK_USER_VERIFICATION_REQD)) { + xasprintf(&prompt, "Enter PIN for %s key: ", + sshkey_type(signkey)); + if ((pin = read_passphrase(prompt, + RP_ALLOW_STDIN)) == NULL) + fatal("%s: couldn't read PIN", __func__); + } + if ((signkey->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { + if ((fp = sshkey_fingerprint(signkey, fingerprint_hash, + SSH_FP_DEFAULT)) == NULL) + fatal("%s: fingerprint failed", __func__); + fprintf(stderr, "Confirm user presence for key %s %s\n", + sshkey_type(signkey), fp); + free(fp); + } } - if ((r = sshsig_sign_fd(signkey, NULL, sk_provider, fd, sig_namespace, - &sigbuf, signer, signer_ctx)) != 0) { + if ((r = sshsig_sign_fd(signkey, NULL, sk_provider, pin, + fd, sig_namespace, &sigbuf, signer, signer_ctx)) != 0) { error("Signing %s failed: %s", filename, ssh_err(r)); goto out; } @@ -2591,7 +2609,10 @@ sign_one(struct sshkey *signkey, const char *filename, int fd, r = 0; out: free(wfile); + free(prompt); free(asig); + if (pin != NULL) + freezero(pin, strlen(pin)); sshbuf_free(abuf); sshbuf_free(sigbuf); if (wfd != -1) @@ -3554,6 +3575,8 @@ main(int argc, char **argv) for (i = 0; i < nopts; i++) { if (strcasecmp(opts[i], "no-touch-required") == 0) { sk_flags &= ~SSH_SK_USER_PRESENCE_REQD; + } else if (strcasecmp(opts[i], "verify-required") == 0) { + sk_flags |= SSH_SK_USER_VERIFICATION_REQD; } else if (strcasecmp(opts[i], "resident") == 0) { sk_flags |= SSH_SK_RESIDENT_KEY; } else if (strncasecmp(opts[i], "device=", 7) == 0) { diff --git a/ssh-keysign.c b/ssh-keysign.c index 3e3ea3e14..7991e0f01 100644 --- a/ssh-keysign.c +++ b/ssh-keysign.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keysign.c,v 1.63 2019/11/18 16:10:05 naddy Exp $ */ +/* $OpenBSD: ssh-keysign.c,v 1.64 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright (c) 2002 Markus Friedl. All rights reserved. * @@ -278,7 +278,7 @@ main(int argc, char **argv) } if ((r = sshkey_sign(keys[i], &signature, &slen, data, dlen, - NULL, NULL, 0)) != 0) + NULL, NULL, NULL, 0)) != 0) fatal("sshkey_sign failed: %s", ssh_err(r)); free(data); diff --git a/ssh_api.c b/ssh_api.c index a0358d4be..129404b20 100644 --- a/ssh_api.c +++ b/ssh_api.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh_api.c,v 1.20 2020/07/01 16:28:31 markus Exp $ */ +/* $OpenBSD: ssh_api.c,v 1.21 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright (c) 2012 Markus Friedl. All rights reserved. * @@ -54,7 +54,7 @@ int _ssh_host_key_sign(struct ssh *, struct sshkey *, struct sshkey *, */ int use_privsep = 0; int mm_sshkey_sign(struct sshkey *, u_char **, u_int *, - const u_char *, u_int, const char *, const char *, u_int); + const u_char *, u_int, const char *, const char *, const char *, u_int); #ifdef WITH_OPENSSL DH *mm_choose_dh(int, int, int); @@ -66,8 +66,8 @@ u_int session_id2_len = 0; int mm_sshkey_sign(struct sshkey *key, u_char **sigp, u_int *lenp, - const u_char *data, u_int datalen, const char *alg, const char *sk_provider, - u_int compat) + const u_char *data, u_int datalen, const char *alg, + const char *sk_provider, const char *sk_pin, u_int compat) { return (-1); } @@ -567,5 +567,5 @@ _ssh_host_key_sign(struct ssh *ssh, struct sshkey *privkey, const u_char *data, size_t dlen, const char *alg) { return sshkey_sign(privkey, signature, slen, data, dlen, - alg, NULL, ssh->compat); + alg, NULL, NULL, ssh->compat); } diff --git a/sshconnect2.c b/sshconnect2.c index 74946da0d..347e348c6 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.324 2020/06/27 13:39:09 bket Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.325 2020/08/27 01:06:18 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -1175,7 +1175,7 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp, struct sshkey *sign_key = NULL, *prv = NULL; int r = SSH_ERR_INTERNAL_ERROR; struct notifier_ctx *notifier = NULL; - char *fp = NULL; + char *fp = NULL, *pin = NULL, *prompt = NULL; *sigp = NULL; *lenp = 0; @@ -1204,20 +1204,28 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp, goto out; } sign_key = prv; - if (sshkey_is_sk(sign_key) && - (sign_key->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { - /* XXX match batch mode should just skip these keys? */ - if ((fp = sshkey_fingerprint(sign_key, - options.fingerprint_hash, SSH_FP_DEFAULT)) == NULL) - fatal("%s: sshkey_fingerprint", __func__); - notifier = notify_start(options.batch_mode, - "Confirm user presence for key %s %s", - sshkey_type(sign_key), fp); - free(fp); + if (sshkey_is_sk(sign_key)) { + if ((sign_key->sk_flags & + SSH_SK_USER_VERIFICATION_REQD)) { + xasprintf(&prompt, "Enter PIN for %s key %s: ", + sshkey_type(sign_key), id->filename); + pin = read_passphrase(prompt, 0); + } + if ((sign_key->sk_flags & SSH_SK_USER_PRESENCE_REQD)) { + /* XXX should batch mode just skip these? */ + if ((fp = sshkey_fingerprint(sign_key, + options.fingerprint_hash, + SSH_FP_DEFAULT)) == NULL) + fatal("%s: fingerprint", __func__); + notifier = notify_start(options.batch_mode, + "Confirm user presence for key %s %s", + sshkey_type(sign_key), fp); + free(fp); + } } } if ((r = sshkey_sign(sign_key, sigp, lenp, data, datalen, - alg, options.sk_provider, compat)) != 0) { + alg, options.sk_provider, pin, compat)) != 0) { debug("%s: sshkey_sign: %s", __func__, ssh_err(r)); goto out; } @@ -1232,6 +1240,9 @@ identity_sign(struct identity *id, u_char **sigp, size_t *lenp, /* success */ r = 0; out: + free(prompt); + if (pin != NULL) + freezero(pin, strlen(pin)); notify_complete(notifier); sshkey_free(prv); return r; diff --git a/sshd.c b/sshd.c index d9a159f6a..8aa7f3df6 100644 --- a/sshd.c +++ b/sshd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshd.c,v 1.560 2020/07/03 10:12:26 markus Exp $ */ +/* $OpenBSD: sshd.c,v 1.561 2020/08/27 01:06:19 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -2338,19 +2338,19 @@ sshd_hostkey_sign(struct ssh *ssh, struct sshkey *privkey, if (use_privsep) { if (privkey) { if (mm_sshkey_sign(ssh, privkey, signature, slenp, - data, dlen, alg, options.sk_provider, + data, dlen, alg, options.sk_provider, NULL, ssh->compat) < 0) fatal("%s: privkey sign failed", __func__); } else { if (mm_sshkey_sign(ssh, pubkey, signature, slenp, - data, dlen, alg, options.sk_provider, + data, dlen, alg, options.sk_provider, NULL, ssh->compat) < 0) fatal("%s: pubkey sign failed", __func__); } } else { if (privkey) { if (sshkey_sign(privkey, signature, slenp, data, dlen, - alg, options.sk_provider, ssh->compat) < 0) + alg, options.sk_provider, NULL, ssh->compat) < 0) fatal("%s: privkey sign failed", __func__); } else { if ((r = ssh_agent_sign(auth_sock, pubkey, diff --git a/sshkey.c b/sshkey.c index 10b9e4676..ac451f1a8 100644 --- a/sshkey.c +++ b/sshkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.c,v 1.110 2020/06/24 15:07:33 markus Exp $ */ +/* $OpenBSD: sshkey.c,v 1.111 2020/08/27 01:06:19 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. * Copyright (c) 2008 Alexander von Gernler. All rights reserved. @@ -2727,7 +2727,7 @@ int sshkey_sign(struct sshkey *key, u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, - const char *alg, const char *sk_provider, u_int compat) + const char *alg, const char *sk_provider, const char *sk_pin, u_int compat) { int was_shielded = sshkey_is_shielded(key); int r2, r = SSH_ERR_INTERNAL_ERROR; @@ -2766,7 +2766,7 @@ sshkey_sign(struct sshkey *key, case KEY_ECDSA_SK_CERT: case KEY_ECDSA_SK: r = sshsk_sign(sk_provider, key, sigp, lenp, data, - datalen, compat, /* XXX PIN */ NULL); + datalen, compat, sk_pin); break; #ifdef WITH_XMSS case KEY_XMSS: @@ -2888,7 +2888,8 @@ sshkey_drop_cert(struct sshkey *k) /* Sign a certified key, (re-)generating the signed certblob. */ int sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, - const char *sk_provider, sshkey_certify_signer *signer, void *signer_ctx) + const char *sk_provider, const char *sk_pin, + sshkey_certify_signer *signer, void *signer_ctx) { struct sshbuf *principals = NULL; u_char *ca_blob = NULL, *sig_blob = NULL, nonce[32]; @@ -3026,7 +3027,7 @@ sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, /* Sign the whole mess */ if ((ret = signer(ca, &sig_blob, &sig_len, sshbuf_ptr(cert), - sshbuf_len(cert), alg, sk_provider, 0, signer_ctx)) != 0) + sshbuf_len(cert), alg, sk_provider, sk_pin, 0, signer_ctx)) != 0) goto out; /* Check and update signature_type against what was actually used */ if ((ret = sshkey_get_sigtype(sig_blob, sig_len, &sigtype)) != 0) @@ -3056,19 +3057,20 @@ sshkey_certify_custom(struct sshkey *k, struct sshkey *ca, const char *alg, static int default_key_sign(struct sshkey *key, u_char **sigp, size_t *lenp, const u_char *data, size_t datalen, - const char *alg, const char *sk_provider, u_int compat, void *ctx) + const char *alg, const char *sk_provider, const char *sk_pin, + u_int compat, void *ctx) { if (ctx != NULL) return SSH_ERR_INVALID_ARGUMENT; return sshkey_sign(key, sigp, lenp, data, datalen, alg, - sk_provider, compat); + sk_provider, sk_pin, compat); } int sshkey_certify(struct sshkey *k, struct sshkey *ca, const char *alg, - const char *sk_provider) + const char *sk_provider, const char *sk_pin) { - return sshkey_certify_custom(k, ca, alg, sk_provider, + return sshkey_certify_custom(k, ca, alg, sk_provider, sk_pin, default_key_sign, NULL); } diff --git a/sshkey.h b/sshkey.h index 9c1d4f637..2d8b62497 100644 --- a/sshkey.h +++ b/sshkey.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sshkey.h,v 1.45 2020/04/08 00:08:46 djm Exp $ */ +/* $OpenBSD: sshkey.h,v 1.46 2020/08/27 01:06:19 djm Exp $ */ /* * Copyright (c) 2000, 2001 Markus Friedl. All rights reserved. @@ -200,12 +200,13 @@ size_t sshkey_format_cert_validity(const struct sshkey_cert *, int sshkey_check_cert_sigtype(const struct sshkey *, const char *); int sshkey_certify(struct sshkey *, struct sshkey *, - const char *, const char *); + const char *, const char *, const char *); /* Variant allowing use of a custom signature function (e.g. for ssh-agent) */ typedef int sshkey_certify_signer(struct sshkey *, u_char **, size_t *, - const u_char *, size_t, const char *, const char *, u_int, void *); + const u_char *, size_t, const char *, const char *, const char *, + u_int, void *); int sshkey_certify_custom(struct sshkey *, struct sshkey *, const char *, - const char *, sshkey_certify_signer *, void *); + const char *, const char *, sshkey_certify_signer *, void *); int sshkey_ecdsa_nid_from_name(const char *); int sshkey_curve_name_to_nid(const char *); @@ -234,7 +235,7 @@ int sshkey_plain_to_blob(const struct sshkey *, u_char **, size_t *); int sshkey_putb_plain(const struct sshkey *, struct sshbuf *); int sshkey_sign(struct sshkey *, u_char **, size_t *, - const u_char *, size_t, const char *, const char *, u_int); + const u_char *, size_t, const char *, const char *, const char *, u_int); int sshkey_verify(const struct sshkey *, const u_char *, size_t, const u_char *, size_t, const char *, u_int, struct sshkey_sig_details **); int sshkey_check_sigtype(const u_char *, size_t, const char *); diff --git a/sshsig.c b/sshsig.c index 15f9cead6..658b8c852 100644 --- a/sshsig.c +++ b/sshsig.c @@ -151,7 +151,7 @@ done: static int sshsig_wrap_sign(struct sshkey *key, const char *hashalg, - const char *sk_provider, const struct sshbuf *h_message, + const char *sk_provider, const char *sk_pin, const struct sshbuf *h_message, const char *sig_namespace, struct sshbuf **out, sshsig_signer *signer, void *signer_ctx) { @@ -185,14 +185,14 @@ sshsig_wrap_sign(struct sshkey *key, const char *hashalg, if (signer != NULL) { if ((r = signer(key, &sig, &slen, sshbuf_ptr(tosign), sshbuf_len(tosign), - sign_alg, sk_provider, 0, signer_ctx)) != 0) { + sign_alg, sk_provider, sk_pin, 0, signer_ctx)) != 0) { error("Couldn't sign message: %s", ssh_err(r)); goto done; } } else { if ((r = sshkey_sign(key, &sig, &slen, sshbuf_ptr(tosign), sshbuf_len(tosign), - sign_alg, sk_provider, 0)) != 0) { + sign_alg, sk_provider, sk_pin, 0)) != 0) { error("Couldn't sign message: %s", ssh_err(r)); goto done; } @@ -430,7 +430,8 @@ hash_buffer(const struct sshbuf *m, const char *hashalg, struct sshbuf **bp) } int -sshsig_signb(struct sshkey *key, const char *hashalg, const char *sk_provider, +sshsig_signb(struct sshkey *key, const char *hashalg, + const char *sk_provider, const char *sk_pin, const struct sshbuf *message, const char *sig_namespace, struct sshbuf **out, sshsig_signer *signer, void *signer_ctx) { @@ -445,7 +446,7 @@ sshsig_signb(struct sshkey *key, const char *hashalg, const char *sk_provider, error("%s: hash_buffer failed: %s", __func__, ssh_err(r)); goto out; } - if ((r = sshsig_wrap_sign(key, hashalg, sk_provider, b, + if ((r = sshsig_wrap_sign(key, hashalg, sk_provider, sk_pin, b, sig_namespace, out, signer, signer_ctx)) != 0) goto out; /* success */ @@ -558,7 +559,8 @@ hash_file(int fd, const char *hashalg, struct sshbuf **bp) } int -sshsig_sign_fd(struct sshkey *key, const char *hashalg, const char *sk_provider, +sshsig_sign_fd(struct sshkey *key, const char *hashalg, + const char *sk_provider, const char *sk_pin, int fd, const char *sig_namespace, struct sshbuf **out, sshsig_signer *signer, void *signer_ctx) { @@ -573,7 +575,7 @@ sshsig_sign_fd(struct sshkey *key, const char *hashalg, const char *sk_provider, error("%s: hash_file failed: %s", __func__, ssh_err(r)); return r; } - if ((r = sshsig_wrap_sign(key, hashalg, sk_provider, b, + if ((r = sshsig_wrap_sign(key, hashalg, sk_provider, sk_pin, b, sig_namespace, out, signer, signer_ctx)) != 0) goto out; /* success */ diff --git a/sshsig.h b/sshsig.h index 63cc1ad1a..44157bc2a 100644 --- a/sshsig.h +++ b/sshsig.h @@ -23,7 +23,8 @@ struct sshsigopt; struct sshkey_sig_details; typedef int sshsig_signer(struct sshkey *, u_char **, size_t *, - const u_char *, size_t, const char *, const char *, u_int, void *); + const u_char *, size_t, const char *, const char *, const char *, + u_int, void *); /* Buffer-oriented API */ @@ -33,7 +34,7 @@ typedef int sshsig_signer(struct sshkey *, u_char **, size_t *, * out is populated with the detached signature, or NULL on failure. */ int sshsig_signb(struct sshkey *key, const char *hashalg, - const char *sk_provider, const struct sshbuf *message, + const char *sk_provider, const char *sk_pin, const struct sshbuf *message, const char *sig_namespace, struct sshbuf **out, sshsig_signer *signer, void *signer_ctx); @@ -54,7 +55,8 @@ int sshsig_verifyb(struct sshbuf *signature, * out is populated with the detached signature, or NULL on failure. */ int sshsig_sign_fd(struct sshkey *key, const char *hashalg, - const char *sk_provider, int fd, const char *sig_namespace, + const char *sk_provider, const char *sk_pin, + int fd, const char *sig_namespace, struct sshbuf **out, sshsig_signer *signer, void *signer_ctx); /* -- cgit v1.2.3 From 801c9f095e6d8b7b91aefd98f5001c652ea13488 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:07:09 +0000 Subject: upstream: support for requiring user verified FIDO keys in sshd This adds a "verify-required" authorized_keys flag and a corresponding sshd_config option that tells sshd to require that FIDO keys verify the user identity before completing the signing/authentication attempt. Whether or not user verification was performed is already baked into the signature made on the FIDO token, so this is just plumbing that flag through and adding ways to require it. feedback and ok markus@ OpenBSD-Commit-ID: 3a2313aae153e043d57763d766bb6d55c4e276e6 --- auth-options.c | 20 +++++++++++++++----- auth-options.h | 4 +++- auth.c | 9 +++++---- auth2-pubkey.c | 18 ++++++++++++++++-- monitor.c | 17 +++++++++++++++-- servconf.c | 6 +++++- servconf.h | 5 +++-- sshd.8 | 11 +++++++++-- sshd_config.5 | 23 +++++++++++++++++------ 9 files changed, 88 insertions(+), 25 deletions(-) diff --git a/auth-options.c b/auth-options.c index 696ba6ac6..98afdf5fe 100644 --- a/auth-options.c +++ b/auth-options.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.c,v 1.92 2020/03/06 18:15:38 markus Exp $ */ +/* $OpenBSD: auth-options.c,v 1.93 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright (c) 2018 Damien Miller * @@ -119,7 +119,10 @@ cert_option_list(struct sshauthopt *opts, struct sshbuf *oblob, } } if (!found && (which & OPTIONS_CRITICAL) != 0) { - if (strcmp(name, "force-command") == 0) { + if (strcmp(name, "verify-required") == 0) { + opts->require_verify = 1; + found = 1; + } else if (strcmp(name, "force-command") == 0) { if ((r = sshbuf_get_cstring(data, &command, NULL)) != 0) { error("Unable to parse \"%s\" " @@ -134,8 +137,7 @@ cert_option_list(struct sshauthopt *opts, struct sshbuf *oblob, } opts->force_command = command; found = 1; - } - if (strcmp(name, "source-address") == 0) { + } else if (strcmp(name, "source-address") == 0) { if ((r = sshbuf_get_cstring(data, &allowed, NULL)) != 0) { error("Unable to parse \"%s\" " @@ -351,6 +353,8 @@ sshauthopt_parse(const char *opts, const char **errstrp) ret->permit_x11_forwarding_flag = r == 1; } else if ((r = opt_flag("touch-required", 1, &opts)) != -1) { ret->no_require_user_presence = r != 1; /* NB. flip */ + } else if ((r = opt_flag("verify-required", 1, &opts)) != -1) { + ret->require_verify = r == 1; } else if ((r = opt_flag("pty", 1, &opts)) != -1) { ret->permit_pty_flag = r == 1; } else if ((r = opt_flag("user-rc", 1, &opts)) != -1) { @@ -572,6 +576,7 @@ sshauthopt_merge(const struct sshauthopt *primary, } #define OPTFLAG_AND(x) ret->x = (primary->x == 1) && (additional->x == 1) +#define OPTFLAG_OR(x) ret->x = (primary->x == 1) || (additional->x == 1) /* Permissive flags are logical-AND (i.e. must be set in both) */ OPTFLAG_AND(permit_port_forwarding_flag); OPTFLAG_AND(permit_agent_forwarding_flag); @@ -579,6 +584,8 @@ sshauthopt_merge(const struct sshauthopt *primary, OPTFLAG_AND(permit_pty_flag); OPTFLAG_AND(permit_user_rc); OPTFLAG_AND(no_require_user_presence); + /* Restrictive flags are logical-OR (i.e. must be set in either) */ + OPTFLAG_OR(require_verify); #undef OPTFLAG_AND /* Earliest expiry time should win */ @@ -649,6 +656,7 @@ sshauthopt_copy(const struct sshauthopt *orig) OPTSCALAR(force_tun_device); OPTSCALAR(valid_before); OPTSCALAR(no_require_user_presence); + OPTSCALAR(require_verify); #undef OPTSCALAR #define OPTSTRING(x) \ do { \ @@ -781,7 +789,8 @@ sshauthopt_serialise(const struct sshauthopt *opts, struct sshbuf *m, (r = sshbuf_put_u8(m, opts->permit_user_rc)) != 0 || (r = sshbuf_put_u8(m, opts->restricted)) != 0 || (r = sshbuf_put_u8(m, opts->cert_authority)) != 0 || - (r = sshbuf_put_u8(m, opts->no_require_user_presence)) != 0) + (r = sshbuf_put_u8(m, opts->no_require_user_presence)) != 0 || + (r = sshbuf_put_u8(m, opts->require_verify)) != 0) return r; /* Simple integer options */ @@ -844,6 +853,7 @@ sshauthopt_deserialise(struct sshbuf *m, struct sshauthopt **optsp) OPT_FLAG(restricted); OPT_FLAG(cert_authority); OPT_FLAG(no_require_user_presence); + OPT_FLAG(require_verify); #undef OPT_FLAG /* Simple integer options */ diff --git a/auth-options.h b/auth-options.h index d96ffedee..118a32087 100644 --- a/auth-options.h +++ b/auth-options.h @@ -1,4 +1,4 @@ -/* $OpenBSD: auth-options.h,v 1.29 2019/11/25 00:54:23 djm Exp $ */ +/* $OpenBSD: auth-options.h,v 1.30 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright (c) 2018 Damien Miller @@ -71,6 +71,8 @@ struct sshauthopt { /* Key requires user presence asserted */ int no_require_user_presence; + /* Key requires user verification (e.g. PIN) */ + int require_verify; }; struct sshauthopt *sshauthopt_new(void); diff --git a/auth.c b/auth.c index 086b8ebb1..9a5498b66 100644 --- a/auth.c +++ b/auth.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth.c,v 1.146 2020/01/31 22:42:45 djm Exp $ */ +/* $OpenBSD: auth.c,v 1.147 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -1006,21 +1006,22 @@ auth_log_authopts(const char *loc, const struct sshauthopt *opts, int do_remote) snprintf(buf, sizeof(buf), "%d", opts->force_tun_device); /* Try to keep this alphabetically sorted */ - snprintf(msg, sizeof(msg), "key options:%s%s%s%s%s%s%s%s%s%s%s%s%s%s", + snprintf(msg, sizeof(msg), "key options:%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s", opts->permit_agent_forwarding_flag ? " agent-forwarding" : "", opts->force_command == NULL ? "" : " command", do_env ? " environment" : "", opts->valid_before == 0 ? "" : "expires", + opts->no_require_user_presence ? " no-touch-required" : "", do_permitopen ? " permitopen" : "", do_permitlisten ? " permitlisten" : "", opts->permit_port_forwarding_flag ? " port-forwarding" : "", opts->cert_principals == NULL ? "" : " principals", opts->permit_pty_flag ? " pty" : "", + opts->require_verify ? " uv" : "", opts->force_tun_device == -1 ? "" : " tun=", opts->force_tun_device == -1 ? "" : buf, opts->permit_user_rc ? " user-rc" : "", - opts->permit_x11_forwarding_flag ? " x11-forwarding" : "", - opts->no_require_user_presence ? " no-touch-required" : ""); + opts->permit_x11_forwarding_flag ? " x11-forwarding" : ""); debug("%s: %s", loc, msg); if (do_remote) diff --git a/auth2-pubkey.c b/auth2-pubkey.c index 815ea0f25..c3ecd9afc 100644 --- a/auth2-pubkey.c +++ b/auth2-pubkey.c @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-pubkey.c,v 1.99 2020/02/06 22:30:54 naddy Exp $ */ +/* $OpenBSD: auth2-pubkey.c,v 1.100 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * @@ -97,7 +97,7 @@ userauth_pubkey(struct ssh *ssh) u_char *pkblob = NULL, *sig = NULL, have_sig; size_t blen, slen; int r, pktype; - int req_presence = 0, authenticated = 0; + int req_presence = 0, req_verify = 0, authenticated = 0; struct sshauthopt *authopts = NULL; struct sshkey_sig_details *sig_details = NULL; @@ -239,6 +239,20 @@ userauth_pubkey(struct ssh *ssh) authenticated = 0; goto done; } + req_verify = (options.pubkey_auth_options & + PUBKEYAUTH_VERIFY_REQUIRED) || + authopts->require_verify; + if (req_verify && (sig_details->sk_flags & + SSH_SK_USER_VERIFICATION_REQD) == 0) { + error("public key %s signature for %s%s from " + "%.128s port %d rejected: user " + "verification requirement not met ", key_s, + authctxt->valid ? "" : "invalid user ", + authctxt->user, ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh)); + authenticated = 0; + goto done; + } } auth2_record_key(authctxt, authenticated, key); } else { diff --git a/monitor.c b/monitor.c index 7c3e6aafe..4cf79dfc9 100644 --- a/monitor.c +++ b/monitor.c @@ -1,4 +1,4 @@ -/* $OpenBSD: monitor.c,v 1.213 2020/08/27 01:06:18 djm Exp $ */ +/* $OpenBSD: monitor.c,v 1.214 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright 2002 Niels Provos * Copyright 2002 Markus Friedl @@ -1387,7 +1387,8 @@ mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m) const u_char *signature, *data, *blob; char *sigalg = NULL, *fp = NULL; size_t signaturelen, datalen, bloblen; - int r, ret, req_presence = 0, valid_data = 0, encoded_ret; + int r, ret, req_presence = 0, req_verify = 0, valid_data = 0; + int encoded_ret; struct sshkey_sig_details *sig_details = NULL; if ((r = sshbuf_get_string_direct(m, &blob, &bloblen)) != 0 || @@ -1452,6 +1453,18 @@ mm_answer_keyverify(struct ssh *ssh, int sock, struct sshbuf *m) ssh_remote_port(ssh)); ret = SSH_ERR_SIGNATURE_INVALID; } + req_verify = (options.pubkey_auth_options & + PUBKEYAUTH_VERIFY_REQUIRED) || key_opts->require_verify; + if (req_verify && + (sig_details->sk_flags & SSH_SK_USER_VERIFICATION_REQD) == 0) { + error("public key %s %s signature for %s%s from %.128s " + "port %d rejected: user verification requirement " + "not met ", sshkey_type(key), fp, + authctxt->valid ? "" : "invalid user ", + authctxt->user, ssh_remote_ipaddr(ssh), + ssh_remote_port(ssh)); + ret = SSH_ERR_SIGNATURE_INVALID; + } } auth2_record_key(authctxt, ret == 0, key); diff --git a/servconf.c b/servconf.c index 67581ccf2..1bc7ee31a 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.367 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.368 2020/08/27 01:07:09 djm Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1527,6 +1527,8 @@ process_server_config_line_depth(ServerOptions *options, char *line, continue; if (strcasecmp(arg, "touch-required") == 0) value |= PUBKEYAUTH_TOUCH_REQUIRED; + else if (strcasecmp(arg, "verify-required") == 0) + value |= PUBKEYAUTH_VERIFY_REQUIRED; else { fatal("%s line %d: unsupported " "PubkeyAuthOptions option %s", @@ -2937,5 +2939,7 @@ dump_config(ServerOptions *o) printf(" none"); if (o->pubkey_auth_options & PUBKEYAUTH_TOUCH_REQUIRED) printf(" touch-required"); + if (o->pubkey_auth_options & PUBKEYAUTH_VERIFY_REQUIRED) + printf(" verify-required"); printf("\n"); } diff --git a/servconf.h b/servconf.h index 8422f3f51..1df8f3db8 100644 --- a/servconf.h +++ b/servconf.h @@ -1,4 +1,4 @@ -/* $OpenBSD: servconf.h,v 1.145 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: servconf.h,v 1.146 2020/08/27 01:07:10 djm Exp $ */ /* * Author: Tatu Ylonen @@ -50,7 +50,8 @@ #define INTERNAL_SFTP_NAME "internal-sftp" /* PubkeyAuthOptions flags */ -#define PUBKEYAUTH_TOUCH_REQUIRED 1 +#define PUBKEYAUTH_TOUCH_REQUIRED (1) +#define PUBKEYAUTH_VERIFY_REQUIRED (1<<1) struct ssh; struct fwd_perm_list; diff --git a/sshd.8 b/sshd.8 index c5f8987d2..b2fad56d3 100644 --- a/sshd.8 +++ b/sshd.8 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd.8,v 1.312 2020/01/25 06:03:10 djm Exp $ -.Dd $Mdocdate: January 25 2020 $ +.\" $OpenBSD: sshd.8,v 1.313 2020/08/27 01:07:10 djm Exp $ +.Dd $Mdocdate: August 27 2020 $ .Dt SSHD 8 .Os .Sh NAME @@ -631,6 +631,13 @@ This option only makes sense for the FIDO authenticator algorithms .Cm ecdsa-sk and .Cm ed25519-sk . +.It Cm verify-required +Require that signatures made using this key attest that they verified +the user, e.g. via a PIN. +This option only makes sense for the FIDO authenticator algorithms +.Cm ecdsa-sk +and +.Cm ed25519-sk . .It Cm restrict Enable all restrictions, i.e. disable port, agent and X11 forwarding, as well as disabling PTY allocation diff --git a/sshd_config.5 b/sshd_config.5 index 17d8c130f..a1898baae 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -33,8 +33,8 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.312 2020/05/29 05:37:03 djm Exp $ -.Dd $Mdocdate: May 29 2020 $ +.\" $OpenBSD: sshd_config.5,v 1.313 2020/08/27 01:07:10 djm Exp $ +.Dd $Mdocdate: August 27 2020 $ .Dt SSHD_CONFIG 5 .Os .Sh NAME @@ -1476,11 +1476,12 @@ The list of available key types may also be obtained using .Qq ssh -Q PubkeyAcceptedKeyTypes . .It Cm PubkeyAuthOptions Sets one or more public key authentication options. -Two option keywords are currently supported: +The supported keywords are: .Cm none -(the default; indicating no additional options are enabled) +(the default; indicating no additional options are enabled), +.Cm touch-required and -.Cm touch-required . +.Cm verify-required . .Pp The .Cm touch-required @@ -1497,7 +1498,17 @@ requires user presence unless overridden with an authorized_keys option. The .Cm touch-required flag disables this override. -This option has no effect for other, non-authenticator public key types. +.Pp +The +.Cm verify-required +option requires a FIDO key signature attest that verified the user, e.g. +via a PIN. +.Pp +Neither the +.Cm touch-required +or +.Cm verify-required +options have any effect for other, non-FIDO public key types. .It Cm PubkeyAuthentication Specifies whether public key authentication is allowed. The default is -- cgit v1.2.3 From 642e06d0df983fa2af85126cf4b23440bb2985bf Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:07:51 +0000 Subject: upstream: major rework of FIDO token selection logic When PINs are in use and multiple FIDO tokens are attached to a host, we cannot just blast requests at all attached tokens with the PIN specified as this will cause the per-token PIN failure counter to increment. If this retry counter hits the token's limit (usually 3 attempts), then the token will lock itself and render all (web and SSH) of its keys invalid. We don't want this. So this reworks the key selection logic for the specific case of multiple keys being attached. When multiple keys are attached and the operation requires a PIN, then the user must touch the key that they wish to use first in order to identify it. This may require multiple touches, but only if there are multiple keys attached AND (usually) the operation requires a PIN. The usual case of a single key attached should be unaffected. Work by Pedro Martelletto; ok myself and markus@ OpenBSD-Commit-ID: 637d3049ced61b7a9ee796914bbc4843d999a864 --- sk-usbhid.c | 578 +++++++++++++++++++++++++++++++++-------------------------- ssh-keygen.c | 7 +- 2 files changed, 332 insertions(+), 253 deletions(-) diff --git a/sk-usbhid.c b/sk-usbhid.c index 1dd834883..2efb377c5 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2019 Markus Friedl + * Copyright (c) 2020 Pedro Martelletto * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above @@ -43,6 +44,7 @@ #ifndef SK_STANDALONE # include "log.h" # include "xmalloc.h" +# include "misc.h" /* * If building as part of OpenSSH, then rename exported functions. * This must be done before including sk-api.h. @@ -63,7 +65,10 @@ #define SSH_FIDO_INIT_ARG 0 #endif -#define MAX_FIDO_DEVICES 256 +#define MAX_FIDO_DEVICES 8 +#define FIDO_POLL_MS 50 +#define SELECT_MS 15000 +#define POLL_SLEEP_NS 200000000 /* Compatibility with OpenSSH 1.0.x */ #if (OPENSSL_VERSION_NUMBER < 0x10100000L) @@ -74,6 +79,11 @@ } while (0) #endif +struct sk_usbhid { + fido_dev_t *dev; + char *path; +}; + /* Return the version of the middleware API */ uint32_t sk_api_version(void); @@ -127,54 +137,185 @@ sk_api_version(void) return SSH_SK_VERSION_MAJOR; } -/* Select the first identified FIDO device attached to the system */ -static char * -pick_first_device(void) +static struct sk_usbhid * +sk_open(const char *path) { - char *ret = NULL; - fido_dev_info_t *devlist = NULL; - size_t olen = 0; + struct sk_usbhid *sk; int r; - const fido_dev_info_t *di; - if ((devlist = fido_dev_info_new(1)) == NULL) { - skdebug(__func__, "fido_dev_info_new failed"); - goto out; + if (path == NULL) { + skdebug(__func__, "path == NULL"); + return NULL; } - if ((r = fido_dev_info_manifest(devlist, 1, &olen)) != FIDO_OK) { - skdebug(__func__, "fido_dev_info_manifest failed: %s", + if ((sk = calloc(1, sizeof(*sk))) == NULL) { + skdebug(__func__, "calloc sk failed"); + return NULL; + } + if ((sk->path = strdup(path)) == NULL) { + skdebug(__func__, "strdup path failed"); + free(sk); + return NULL; + } + if ((sk->dev = fido_dev_new()) == NULL) { + skdebug(__func__, "fido_dev_new failed"); + free(sk->path); + free(sk); + return NULL; + } + if ((r = fido_dev_open(sk->dev, sk->path)) != FIDO_OK) { + skdebug(__func__, "fido_dev_open %s failed: %s", sk->path, fido_strerr(r)); - goto out; + fido_dev_free(&sk->dev); + free(sk->path); + free(sk); + return NULL; } - if (olen != 1) { - skdebug(__func__, "fido_dev_info_manifest bad len %zu", olen); - goto out; + return sk; +} + +static void +sk_close(struct sk_usbhid *sk) +{ + if (sk == NULL) + return; + fido_dev_cancel(sk->dev); /* cancel any pending operation */ + fido_dev_close(sk->dev); + fido_dev_free(&sk->dev); + free(sk->path); + free(sk); +} + +static struct sk_usbhid ** +sk_openv(const fido_dev_info_t *devlist, size_t ndevs, size_t *nopen) +{ + const fido_dev_info_t *di; + struct sk_usbhid **skv; + size_t i; + + *nopen = 0; + if ((skv = calloc(ndevs, sizeof(*skv))) == NULL) { + skdebug(__func__, "calloc skv failed"); + return NULL; } - di = fido_dev_info_ptr(devlist, 0); - if ((ret = strdup(fido_dev_info_path(di))) == NULL) { - skdebug(__func__, "fido_dev_info_path failed"); - goto out; + for (i = 0; i < ndevs; i++) { + if ((di = fido_dev_info_ptr(devlist, i)) == NULL) + skdebug(__func__, "fido_dev_info_ptr failed"); + else if ((skv[*nopen] = sk_open(fido_dev_info_path(di))) == NULL) + skdebug(__func__, "sk_open failed"); + else + (*nopen)++; } - out: - fido_dev_info_free(&devlist, 1); - return ret; + if (*nopen == 0) { + for (i = 0; i < ndevs; i++) + sk_close(skv[i]); + free(skv); + skv = NULL; + } + + return skv; +} + +static void +sk_closev(struct sk_usbhid **skv, size_t nsk) +{ + size_t i; + + for (i = 0; i < nsk; i++) + sk_close(skv[i]); + free(skv); } -/* Check if the specified key handle exists on a given device. */ static int -try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, - const char *application, const uint8_t *key_handle, size_t key_handle_len, - uint8_t flags, const char *pin) +sk_touch_begin(struct sk_usbhid **skv, size_t nsk) +{ + size_t i, ok = 0; + int r; + + for (i = 0; i < nsk; i++) + if ((r = fido_dev_get_touch_begin(skv[i]->dev)) != FIDO_OK) + skdebug(__func__, "fido_dev_get_touch_begin %s failed:" + " %s", skv[i]->path, fido_strerr(r)); + else + ok++; + + return ok ? 0 : -1; +} + +static int +sk_touch_poll(struct sk_usbhid **skv, size_t nsk, int *touch, size_t *idx) +{ + struct timespec ts_pause; + size_t npoll, i; + int r; + + ts_pause.tv_sec = 0; + ts_pause.tv_nsec = POLL_SLEEP_NS; + nanosleep(&ts_pause, NULL); + npoll = nsk; + for (i = 0; i < nsk; i++) { + if (skv[i] == NULL) + continue; /* device discarded */ + skdebug(__func__, "polling %s", skv[i]->path); + if ((r = fido_dev_get_touch_status(skv[i]->dev, touch, + FIDO_POLL_MS)) != FIDO_OK) { + skdebug(__func__, "fido_dev_get_touch_status %s: %s", + skv[i]->path, fido_strerr(r)); + sk_close(skv[i]); /* discard device */ + skv[i] = NULL; + if (--npoll == 0) { + skdebug(__func__, "no device left to poll"); + return -1; + } + } else if (*touch) { + *idx = i; + return 0; + } + } + *touch = 0; + return 0; +} + +/* Calculate SHA256(m) */ +static int +sha256_mem(const void *m, size_t mlen, u_char *d, size_t dlen) +{ +#ifdef WITH_OPENSSL + u_int mdlen; +#endif + + if (dlen != 32) + return -1; +#ifdef WITH_OPENSSL + mdlen = dlen; + if (!EVP_Digest(m, mlen, d, &mdlen, EVP_sha256(), NULL)) + return -1; +#else + SHA256Data(m, mlen, d); +#endif + return 0; +} + +/* Check if the specified key handle exists on a given sk. */ +static int +sk_try(const struct sk_usbhid *sk, const char *application, + const uint8_t *key_handle, size_t key_handle_len) { fido_assert_t *assert = NULL; + /* generate an invalid signature on FIDO2 tokens */ + const char *data = ""; + uint8_t message[32]; int r = FIDO_ERR_INTERNAL; + if (sha256_mem(data, strlen(data), message, sizeof(message)) != 0) { + skdebug(__func__, "hash message failed"); + goto out; + } if ((assert = fido_assert_new()) == NULL) { skdebug(__func__, "fido_assert_new failed"); goto out; } if ((r = fido_assert_set_clientdata_hash(assert, message, - message_len)) != FIDO_OK) { + sizeof(message))) != FIDO_OK) { skdebug(__func__, "fido_assert_set_clientdata_hash: %s", fido_strerr(r)); goto out; @@ -192,7 +333,7 @@ try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, skdebug(__func__, "fido_assert_up: %s", fido_strerr(r)); goto out; } - r = fido_dev_get_assert(dev, assert, pin); + r = fido_dev_get_assert(sk->dev, assert, NULL); skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); if (r == FIDO_ERR_USER_PRESENCE_REQUIRED) { /* U2F tokens may return this */ @@ -204,77 +345,110 @@ try_device(fido_dev_t *dev, const uint8_t *message, size_t message_len, return r != FIDO_OK ? -1 : 0; } -/* Iterate over configured devices looking for a specific key handle */ -static fido_dev_t * -find_device(const char *path, const uint8_t *message, size_t message_len, - const char *application, const uint8_t *key_handle, size_t key_handle_len, - uint8_t flags, const char *pin) +static struct sk_usbhid * +sk_select_by_cred(const fido_dev_info_t *devlist, size_t ndevs, + const char *application, const uint8_t *key_handle, size_t key_handle_len) { - fido_dev_info_t *devlist = NULL; - fido_dev_t *dev = NULL; - size_t devlist_len = 0, i; - int r; - - if (path != NULL) { - if ((dev = fido_dev_new()) == NULL) { - skdebug(__func__, "fido_dev_new failed"); - return NULL; - } - if ((r = fido_dev_open(dev, path)) != FIDO_OK) { - skdebug(__func__, "fido_dev_open failed"); - fido_dev_free(&dev); - return NULL; + struct sk_usbhid **skv, *sk; + size_t skvcnt, i; + + if ((skv = sk_openv(devlist, ndevs, &skvcnt)) == NULL) { + skdebug(__func__, "sk_openv failed"); + return NULL; + } + sk = NULL; + for (i = 0; i < skvcnt; i++) + if (sk_try(skv[i], application, key_handle, + key_handle_len) == 0) { + sk = skv[i]; + skv[i] = NULL; + skdebug(__func__, "found key in %s", sk->path); + break; } - return dev; - } + sk_closev(skv, skvcnt); + return sk; +} - if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) { - skdebug(__func__, "fido_dev_info_new failed"); +static struct sk_usbhid * +sk_select_by_touch(const fido_dev_info_t *devlist, size_t ndevs) +{ + struct sk_usbhid **skv, *sk; + struct timeval tv_start, tv_now, tv_delta; + size_t skvcnt, idx; + int touch, ms_remain; + + if ((skv = sk_openv(devlist, ndevs, &skvcnt)) == NULL) { + skdebug(__func__, "sk_openv failed"); + return NULL; + } + sk = NULL; + if (skvcnt < 2) { + if (skvcnt == 1) { + /* single candidate */ + sk = skv[0]; + skv[0] = NULL; + } goto out; } - if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, - &devlist_len)) != FIDO_OK) { - skdebug(__func__, "fido_dev_info_manifest: %s", fido_strerr(r)); + if (sk_touch_begin(skv, skvcnt) == -1) { + skdebug(__func__, "sk_touch_begin failed"); goto out; } - - skdebug(__func__, "found %zu device(s)", devlist_len); - - for (i = 0; i < devlist_len; i++) { - const fido_dev_info_t *di = fido_dev_info_ptr(devlist, i); - - if (di == NULL) { - skdebug(__func__, "fido_dev_info_ptr %zu failed", i); - continue; - } - if ((path = fido_dev_info_path(di)) == NULL) { - skdebug(__func__, "fido_dev_info_path %zu failed", i); - continue; - } - skdebug(__func__, "trying device %zu: %s", i, path); - if ((dev = fido_dev_new()) == NULL) { - skdebug(__func__, "fido_dev_new failed"); - continue; - } - if ((r = fido_dev_open(dev, path)) != FIDO_OK) { - skdebug(__func__, "fido_dev_open failed"); - fido_dev_free(&dev); - continue; + monotime_tv(&tv_start); + do { + if (sk_touch_poll(skv, skvcnt, &touch, &idx) == -1) { + skdebug(__func__, "sk_touch_poll failed"); + goto out; } - if (try_device(dev, message, message_len, application, - key_handle, key_handle_len, flags, pin) == 0) { - skdebug(__func__, "found key"); - break; + if (touch) { + sk = skv[idx]; + skv[idx] = NULL; + goto out; } - fido_dev_close(dev); - fido_dev_free(&dev); - } + monotime_tv(&tv_now); + timersub(&tv_now, &tv_start, &tv_delta); + ms_remain = SELECT_MS - tv_delta.tv_sec * 1000 - + tv_delta.tv_usec / 1000; + } while (ms_remain >= FIDO_POLL_MS); + skdebug(__func__, "timeout"); +out: + sk_closev(skv, skvcnt); + return sk; +} - out: - if (devlist != NULL) - fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); +static struct sk_usbhid * +sk_probe(const char *application, const uint8_t *key_handle, + size_t key_handle_len) +{ + struct sk_usbhid *sk; + fido_dev_info_t *devlist; + size_t ndevs; + int r; - return dev; + if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) { + skdebug(__func__, "fido_dev_info_new failed"); + return NULL; + } + if ((r = fido_dev_info_manifest(devlist, MAX_FIDO_DEVICES, + &ndevs)) != FIDO_OK) { + skdebug(__func__, "fido_dev_info_manifest failed: %s", + fido_strerr(r)); + fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); + return NULL; + } + skdebug(__func__, "%zu device(s) detected", ndevs); + if (ndevs == 0) { + sk = NULL; + } else if (application != NULL && key_handle != NULL) { + skdebug(__func__, "selecting sk by cred"); + sk = sk_select_by_cred(devlist, ndevs, application, key_handle, + key_handle_len); + } else { + skdebug(__func__, "selecting sk by touch"); + sk = sk_select_by_touch(devlist, ndevs); + } + fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); + return sk; } #ifdef WITH_OPENSSL @@ -451,52 +625,15 @@ check_enroll_options(struct sk_option **options, char **devicep, return 0; } -static int -check_sk_extensions(fido_dev_t *dev, const char *ext, int *ret) -{ - fido_cbor_info_t *info; - char * const *ptr; - size_t len, i; - int r; - - *ret = 0; - - if (!fido_dev_is_fido2(dev)) { - skdebug(__func__, "device is not fido2"); - return 0; - } - if ((info = fido_cbor_info_new()) == NULL) { - skdebug(__func__, "fido_cbor_info_new failed"); - return -1; - } - if ((r = fido_dev_get_cbor_info(dev, info)) != FIDO_OK) { - skdebug(__func__, "fido_dev_get_cbor_info: %s", fido_strerr(r)); - fido_cbor_info_free(&info); - return -1; - } - ptr = fido_cbor_info_extensions_ptr(info); - len = fido_cbor_info_extensions_len(info); - for (i = 0; i < len; i++) { - if (!strcmp(ptr[i], ext)) { - *ret = 1; - break; - } - } - fido_cbor_info_free(&info); - skdebug(__func__, "extension %s %s", ext, *ret ? "present" : "absent"); - - return 0; -} - int sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, const char *application, uint8_t flags, const char *pin, struct sk_option **options, struct sk_enroll_response **enroll_response) { fido_cred_t *cred = NULL; - fido_dev_t *dev = NULL; const uint8_t *ptr; uint8_t user_id[32]; + struct sk_usbhid *sk = NULL; struct sk_enroll_response *response = NULL; size_t len; int credprot; @@ -511,12 +648,12 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "enroll_response == NULL"); goto out; } + *enroll_response = NULL; memset(user_id, 0, sizeof(user_id)); - if (check_enroll_options(options, &device, - user_id, sizeof(user_id)) != 0) + if (check_enroll_options(options, &device, user_id, + sizeof(user_id)) != 0) goto out; /* error already logged */ - *enroll_response = NULL; switch(alg) { #ifdef WITH_OPENSSL case SSH_SK_ECDSA: @@ -530,12 +667,15 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "unsupported key type %d", alg); goto out; } - if (device == NULL && (device = pick_first_device()) == NULL) { - ret = SSH_SK_ERR_DEVICE_NOT_FOUND; - skdebug(__func__, "pick_first_device failed"); + if (device != NULL) + sk = sk_open(device); + else + sk = sk_probe(NULL, NULL, 0); + if (sk == NULL) { + skdebug(__func__, "failed to find sk"); goto out; } - skdebug(__func__, "using device %s", device); + skdebug(__func__, "using device %s", sk->path); if ((cred = fido_cred_new()) == NULL) { skdebug(__func__, "fido_cred_new failed"); goto out; @@ -564,22 +704,11 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, skdebug(__func__, "fido_cred_set_rp: %s", fido_strerr(r)); goto out; } - if ((dev = fido_dev_new()) == NULL) { - skdebug(__func__, "fido_dev_new failed"); - goto out; - } - if ((r = fido_dev_open(dev, device)) != FIDO_OK) { - skdebug(__func__, "fido_dev_open: %s", fido_strerr(r)); - goto out; - } if ((flags & (SSH_SK_RESIDENT_KEY|SSH_SK_USER_VERIFICATION_REQD)) != 0) { - if (check_sk_extensions(dev, "credProtect", &credprot) < 0) { - skdebug(__func__, "check_sk_extensions failed"); - goto out; - } - if (credprot == 0) { - skdebug(__func__, "refusing to create unprotected " - "resident/verify-required key"); + if (!fido_dev_supports_cred_prot(sk->dev)) { + skdebug(__func__, "%s does not support credprot, " + "refusing to create unprotected " + "resident/verify-required key", sk->path); ret = SSH_SK_ERR_UNSUPPORTED; goto out; } @@ -595,7 +724,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, goto out; } } - if ((r = fido_dev_make_cred(dev, cred, pin)) != FIDO_OK) { + if ((r = fido_dev_make_cred(sk->dev, cred, pin)) != FIDO_OK) { skdebug(__func__, "fido_dev_make_cred: %s", fido_strerr(r)); ret = fidoerr_to_skerr(r); goto out; @@ -662,13 +791,8 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, free(response->attestation_cert); free(response); } - if (dev != NULL) { - fido_dev_close(dev); - fido_dev_free(&dev); - } - if (cred != NULL) { - fido_cred_free(&cred); - } + sk_close(sk); + fido_cred_free(&cred); return ret; } @@ -782,26 +906,6 @@ check_sign_load_resident_options(struct sk_option **options, char **devicep) return 0; } -/* Calculate SHA256(m) */ -static int -sha256_mem(const void *m, size_t mlen, u_char *d, size_t dlen) -{ -#ifdef WITH_OPENSSL - u_int mdlen; -#endif - - if (dlen != 32) - return -1; -#ifdef WITH_OPENSSL - mdlen = dlen; - if (!EVP_Digest(m, mlen, d, &mdlen, EVP_sha256(), NULL)) - return -1; -#else - SHA256Data(m, mlen, d); -#endif - return 0; -} - int sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, const char *application, @@ -811,7 +915,7 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, { fido_assert_t *assert = NULL; char *device = NULL; - fido_dev_t *dev = NULL; + struct sk_usbhid *sk = NULL; struct sk_sign_response *response = NULL; uint8_t message[32]; int ret = SSH_SK_ERR_GENERAL; @@ -831,9 +935,14 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, skdebug(__func__, "hash message failed"); goto out; } - if ((dev = find_device(device, message, sizeof(message), - application, key_handle, key_handle_len, flags, pin)) == NULL) { - skdebug(__func__, "couldn't find device for key handle"); + if (device != NULL) + sk = sk_open(device); + else if (pin != NULL || (flags & SSH_SK_USER_VERIFICATION_REQD)) + sk = sk_probe(NULL, NULL, 0); + else + sk = sk_probe(application, key_handle, key_handle_len); + if (sk == NULL) { + skdebug(__func__, "failed to find sk"); goto out; } if ((assert = fido_assert_new()) == NULL) { @@ -867,7 +976,7 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, ret = FIDO_ERR_PIN_REQUIRED; goto out; } - if ((r = fido_dev_get_assert(dev, assert, pin)) != FIDO_OK) { + if ((r = fido_dev_get_assert(sk->dev, assert, pin)) != FIDO_OK) { skdebug(__func__, "fido_dev_get_assert: %s", fido_strerr(r)); ret = fidoerr_to_skerr(r); goto out; @@ -893,22 +1002,16 @@ sk_sign(uint32_t alg, const uint8_t *data, size_t datalen, free(response->sig_s); free(response); } - if (dev != NULL) { - fido_dev_close(dev); - fido_dev_free(&dev); - } - if (assert != NULL) { - fido_assert_free(&assert); - } + sk_close(sk); + fido_assert_free(&assert); return ret; } static int -read_rks(const char *devpath, const char *pin, +read_rks(struct sk_usbhid *sk, const char *pin, struct sk_resident_key ***rksp, size_t *nrksp) { int ret = SSH_SK_ERR_GENERAL, r = -1; - fido_dev_t *dev = NULL; fido_credman_metadata_t *metadata = NULL; fido_credman_rp_t *rp = NULL; fido_credman_rk_t *rk = NULL; @@ -916,30 +1019,25 @@ read_rks(const char *devpath, const char *pin, const fido_cred_t *cred; struct sk_resident_key *srk = NULL, **tmp; - if ((dev = fido_dev_new()) == NULL) { - skdebug(__func__, "fido_dev_new failed"); - return ret; - } - if ((r = fido_dev_open(dev, devpath)) != FIDO_OK) { - skdebug(__func__, "fido_dev_open %s failed: %s", - devpath, fido_strerr(r)); - fido_dev_free(&dev); - return ret; + if (pin == NULL) { + skdebug(__func__, "no PIN specified"); + ret = SSH_SK_ERR_PIN_REQUIRED; + goto out; } if ((metadata = fido_credman_metadata_new()) == NULL) { skdebug(__func__, "alloc failed"); goto out; } - if ((r = fido_credman_get_dev_metadata(dev, metadata, pin)) != 0) { + if ((r = fido_credman_get_dev_metadata(sk->dev, metadata, pin)) != 0) { if (r == FIDO_ERR_INVALID_COMMAND) { skdebug(__func__, "device %s does not support " - "resident keys", devpath); + "resident keys", sk->path); ret = 0; goto out; } skdebug(__func__, "get metadata for %s failed: %s", - devpath, fido_strerr(r)); + sk->path, fido_strerr(r)); ret = fidoerr_to_skerr(r); goto out; } @@ -950,14 +1048,14 @@ read_rks(const char *devpath, const char *pin, skdebug(__func__, "alloc rp failed"); goto out; } - if ((r = fido_credman_get_dev_rp(dev, rp, pin)) != 0) { + if ((r = fido_credman_get_dev_rp(sk->dev, rp, pin)) != 0) { skdebug(__func__, "get RPs for %s failed: %s", - devpath, fido_strerr(r)); + sk->path, fido_strerr(r)); goto out; } nrp = fido_credman_rp_count(rp); skdebug(__func__, "Device %s has resident keys for %zu RPs", - devpath, nrp); + sk->path, nrp); /* Iterate over RP IDs that have resident keys */ for (i = 0; i < nrp; i++) { @@ -974,10 +1072,10 @@ read_rks(const char *devpath, const char *pin, skdebug(__func__, "alloc rk failed"); goto out; } - if ((r = fido_credman_get_dev_rk(dev, fido_credman_rp_id(rp, i), - rk, pin)) != 0) { + if ((r = fido_credman_get_dev_rk(sk->dev, + fido_credman_rp_id(rp, i), rk, pin)) != 0) { skdebug(__func__, "get RKs for %s slot %zu failed: %s", - devpath, i, fido_strerr(r)); + sk->path, i, fido_strerr(r)); goto out; } nrk = fido_credman_rk_count(rk); @@ -991,7 +1089,7 @@ read_rks(const char *devpath, const char *pin, continue; } skdebug(__func__, "Device %s RP \"%s\" slot %zu: " - "type %d flags 0x%02x prot 0x%02x", devpath, + "type %d flags 0x%02x prot 0x%02x", sk->path, fido_credman_rp_id(rp, i), j, fido_cred_type(cred), fido_cred_flags(cred), fido_cred_prot(cred)); @@ -1050,8 +1148,6 @@ read_rks(const char *devpath, const char *pin, } fido_credman_rp_free(&rp); fido_credman_rk_free(&rk); - fido_dev_close(dev); - fido_dev_free(&dev); fido_credman_metadata_free(&metadata); return ret; } @@ -1061,11 +1157,11 @@ sk_load_resident_keys(const char *pin, struct sk_option **options, struct sk_resident_key ***rksp, size_t *nrksp) { int ret = SSH_SK_ERR_GENERAL, r = -1; - fido_dev_info_t *devlist = NULL; - size_t i, ndev = 0, nrks = 0; - const fido_dev_info_t *di; + size_t i, nrks = 0; struct sk_resident_key **rks = NULL; + struct sk_usbhid *sk = NULL; char *device = NULL; + *rksp = NULL; *nrksp = 0; @@ -1073,40 +1169,19 @@ sk_load_resident_keys(const char *pin, struct sk_option **options, if (check_sign_load_resident_options(options, &device) != 0) goto out; /* error already logged */ - if (device != NULL) { - skdebug(__func__, "trying %s", device); - if ((r = read_rks(device, pin, &rks, &nrks)) != 0) { - skdebug(__func__, "read_rks failed for %s", device); - ret = r; - goto out; - } - } else { - /* Try all devices */ - if ((devlist = fido_dev_info_new(MAX_FIDO_DEVICES)) == NULL) { - skdebug(__func__, "fido_dev_info_new failed"); - goto out; - } - if ((r = fido_dev_info_manifest(devlist, - MAX_FIDO_DEVICES, &ndev)) != FIDO_OK) { - skdebug(__func__, "fido_dev_info_manifest failed: %s", - fido_strerr(r)); - goto out; - } - for (i = 0; i < ndev; i++) { - if ((di = fido_dev_info_ptr(devlist, i)) == NULL) { - skdebug(__func__, "no dev info at %zu", i); - continue; - } - skdebug(__func__, "trying %s", fido_dev_info_path(di)); - if ((r = read_rks(fido_dev_info_path(di), pin, - &rks, &nrks)) != 0) { - skdebug(__func__, "read_rks failed for %s", - fido_dev_info_path(di)); - /* remember last error */ - ret = r; - continue; - } - } + if (device != NULL) + sk = sk_open(device); + else + sk = sk_probe(NULL, NULL, 0); + if (sk == NULL) { + skdebug(__func__, "failed to find sk"); + goto out; + } + skdebug(__func__, "trying %s", sk->path); + if ((r = read_rks(sk, pin, &rks, &nrks)) != 0) { + skdebug(__func__, "read_rks failed for %s", sk->path); + ret = r; + goto out; } /* success, unless we have no keys but a specific error */ if (nrks > 0 || ret == SSH_SK_ERR_GENERAL) @@ -1116,7 +1191,7 @@ sk_load_resident_keys(const char *pin, struct sk_option **options, rks = NULL; nrks = 0; out: - free(device); + sk_close(sk); for (i = 0; i < nrks; i++) { free(rks[i]->application); freezero(rks[i]->key.public_key, rks[i]->key.public_key_len); @@ -1124,7 +1199,6 @@ sk_load_resident_keys(const char *pin, struct sk_option **options, freezero(rks[i], sizeof(*rks[i])); } free(rks); - fido_dev_info_free(&devlist, MAX_FIDO_DEVICES); return ret; } diff --git a/ssh-keygen.c b/ssh-keygen.c index 89ef9a143..1d6234c1c 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.416 2020/08/27 01:06:18 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.417 2020/08/27 01:07:51 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -3632,6 +3632,11 @@ main(int argc, char **argv) fatal("Too many incorrect PINs"); passphrase = read_passphrase("Enter PIN for " "authenticator: ", RP_ALLOW_STDIN); + if (!quiet) { + printf("You may need to touch your " + "authenticator (again) to authorize " + "key generation.\n"); + } } if (passphrase != NULL) { freezero(passphrase, strlen(passphrase)); -- cgit v1.2.3 From b649b3daa6d4b8ebe1bd6de69b3db5d2c03c9af0 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:08:19 +0000 Subject: upstream: preserve verify-required for resident FIDO keys When downloading a resident, verify-required key from a FIDO token, preserve the verify-required in the private key that is written to disk. Previously we weren't doing that because of lack of support in the middleware API. from Pedro Martelletto; ok markus@ and myself OpenBSD-Commit-ID: 201c46ccdd227cddba3d64e1bdbd082afa956517 --- sk-api.h | 5 +++-- sk-usbhid.c | 6 ++++-- ssh-sk.c | 5 +++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/sk-api.h b/sk-api.h index 1ecaa3537..cc32cd4cc 100644 --- a/sk-api.h +++ b/sk-api.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sk-api.h,v 1.9 2020/04/28 04:02:29 djm Exp $ */ +/* $OpenBSD: sk-api.h,v 1.10 2020/08/27 01:08:19 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -63,6 +63,7 @@ struct sk_resident_key { size_t slot; char *application; struct sk_enroll_response key; + uint8_t flags; }; struct sk_option { @@ -71,7 +72,7 @@ struct sk_option { uint8_t required; }; -#define SSH_SK_VERSION_MAJOR 0x00050000 /* current API version */ +#define SSH_SK_VERSION_MAJOR 0x00060000 /* current API version */ #define SSH_SK_VERSION_MAJOR_MASK 0xffff0000 /* Return the version of the middleware API */ diff --git a/sk-usbhid.c b/sk-usbhid.c index 2efb377c5..0305683fe 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -1104,8 +1104,7 @@ read_rks(struct sk_usbhid *sk, const char *pin, } srk->key.key_handle_len = fido_cred_id_len(cred); - memcpy(srk->key.key_handle, - fido_cred_id_ptr(cred), + memcpy(srk->key.key_handle, fido_cred_id_ptr(cred), srk->key.key_handle_len); switch (fido_cred_type(cred)) { @@ -1121,6 +1120,9 @@ read_rks(struct sk_usbhid *sk, const char *pin, goto out; /* XXX free rk and continue */ } + if (fido_cred_prot(cred) == FIDO_CRED_PROT_UV_REQUIRED) + srk->flags |= SSH_SK_USER_VERIFICATION_REQD; + if ((r = pack_public_key(srk->alg, cred, &srk->key)) != 0) { skdebug(__func__, "pack public key failed"); diff --git a/ssh-sk.c b/ssh-sk.c index 1afb205f8..89478aff0 100644 --- a/ssh-sk.c +++ b/ssh-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-sk.c,v 1.30 2020/04/28 04:02:29 djm Exp $ */ +/* $OpenBSD: ssh-sk.c,v 1.31 2020/08/27 01:08:19 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -769,8 +769,9 @@ sshsk_load_resident(const char *provider_path, const char *device, default: continue; } - /* XXX where to get flags? */ flags = SSH_SK_USER_PRESENCE_REQD|SSH_SK_RESIDENT_KEY; + if ((rks[i]->flags & SSH_SK_USER_VERIFICATION_REQD)) + flags |= SSH_SK_USER_VERIFICATION_REQD; if ((r = sshsk_key_from_response(rks[i]->alg, rks[i]->application, flags, &rks[i]->key, &key)) != 0) goto out; -- cgit v1.2.3 From 0caff05350bd5fc635674c9e051a0322faba5ae3 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:08:45 +0000 Subject: upstream: Request PIN ahead of time for certain FIDO actions When we know that a particular action will require a PIN, such as downloading resident keys or generating a verify-required key, request the PIN before attempting it. joint work with Pedro Martelletto; ok markus@ OpenBSD-Commit-ID: 863182d38ef075bad1f7d20ca485752a05edb727 --- ssh-keygen.1 | 4 +++- ssh-keygen.c | 38 ++++++++++++++++++++------------------ 2 files changed, 23 insertions(+), 19 deletions(-) diff --git a/ssh-keygen.1 b/ssh-keygen.1 index 7e0558fe1..e18fcde01 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.206 2020/08/27 01:06:18 djm Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.207 2020/08/27 01:08:45 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -382,6 +382,8 @@ The default import format is Download resident keys from a FIDO authenticator. Public and private key files will be written to the current directory for each downloaded key. +If multiple FIDO authenticators are attached, keys will be downloaded from +the first touched authenticator. .It Fl k Generate a KRL file. In this mode, diff --git a/ssh-keygen.c b/ssh-keygen.c index 1d6234c1c..664724276 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.417 2020/08/27 01:07:51 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.418 2020/08/27 01:08:45 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -2984,20 +2984,17 @@ do_download_sk(const char *skprovider, const char *device) if (skprovider == NULL) fatal("Cannot download keys without provider"); - for (i = 0; i < 2; i++) { - if (i == 1) { - pin = read_passphrase("Enter PIN for authenticator: ", - RP_ALLOW_STDIN); - } - if ((r = sshsk_load_resident(skprovider, device, pin, - &keys, &nkeys)) != 0) { - if (i == 0 && r == SSH_ERR_KEY_WRONG_PASSPHRASE) - continue; - if (pin != NULL) - freezero(pin, strlen(pin)); - error("Unable to load resident keys: %s", ssh_err(r)); - return -1; - } + pin = read_passphrase("Enter PIN for authenticator: ", RP_ALLOW_STDIN); + if (!quiet) { + printf("You may need to touch your authenticator " + "to authorize key download.\n"); + } + if ((r = sshsk_load_resident(skprovider, device, pin, + &keys, &nkeys)) != 0) { + if (pin != NULL) + freezero(pin, strlen(pin)); + error("Unable to load resident keys: %s", ssh_err(r)); + return -1; } if (nkeys == 0) logit("No keys to download"); @@ -3609,9 +3606,15 @@ main(int argc, char **argv) printf("You may need to touch your authenticator " "to authorize key generation.\n"); } - passphrase = NULL; if ((attest = sshbuf_new()) == NULL) fatal("sshbuf_new failed"); + if ((sk_flags & + (SSH_SK_USER_VERIFICATION_REQD|SSH_SK_RESIDENT_KEY))) { + passphrase = read_passphrase("Enter PIN for " + "authenticator: ", RP_ALLOW_STDIN); + } else { + passphrase = NULL; + } for (i = 0 ; ; i++) { fflush(stdout); r = sshsk_enroll(type, sk_provider, sk_device, @@ -3622,9 +3625,8 @@ main(int argc, char **argv) break; if (r != SSH_ERR_KEY_WRONG_PASSPHRASE) fatal("Key enrollment failed: %s", ssh_err(r)); - else if (i > 0) + else if (passphrase != NULL) { error("PIN incorrect"); - if (passphrase != NULL) { freezero(passphrase, strlen(passphrase)); passphrase = NULL; } -- cgit v1.2.3 From c1e76c64956b424ba260fd4eec9970e5b5859039 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 02:11:09 +0000 Subject: upstream: remove unreachable code I forgot to delete in r1.334 OpenBSD-Commit-ID: 9ed6078251a0959ee8deda443b9ae42484fd8b18 --- readconf.c | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/readconf.c b/readconf.c index 94b67e1c6..554efd7c9 100644 --- a/readconf.c +++ b/readconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: readconf.c,v 1.334 2020/08/11 09:49:57 djm Exp $ */ +/* $OpenBSD: readconf.c,v 1.335 2020/08/27 02:11:09 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1832,18 +1832,6 @@ parse_keytypes: } break; - arg = strdelim(&s); - if (!arg || *arg == '\0') - fatal("%s line %d: missing time value.", - filename, linenum); - if (strcmp(arg, "none") == 0) - value = -1; - else if ((value = convtime(arg)) == -1 || value > INT_MAX) - fatal("%s line %d: invalid time value.", - filename, linenum); - if (*activep && *intptr == -1) - *intptr = value; - case oIdentityAgent: charptr = &options->identity_agent; arg = strdelim(&s); -- cgit v1.2.3 From 9cbbdc12cb6a2ab1e9ffe9974cca91d213c185c2 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 01:15:36 +0000 Subject: upstream: dummy firmware needs to match API version numner crank (for verify-required resident keys) even though it doesn't implement this feature OpenBSD-Regress-ID: 86579ea2891e18e822e204413d011b2ae0e59657 --- regress/misc/sk-dummy/sk-dummy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regress/misc/sk-dummy/sk-dummy.c b/regress/misc/sk-dummy/sk-dummy.c index f3acb2fb7..792016b33 100644 --- a/regress/misc/sk-dummy/sk-dummy.c +++ b/regress/misc/sk-dummy/sk-dummy.c @@ -47,7 +47,7 @@ } while (0) #endif -#if SSH_SK_VERSION_MAJOR != 0x00050000 +#if SSH_SK_VERSION_MAJOR != 0x00060000 # error SK API has changed, sk-dummy.c needs an update #endif -- cgit v1.2.3 From bbcc858ded3fbc46abfa7760e40389e3ca93884c Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 27 Aug 2020 12:37:12 +1000 Subject: degrade semi-gracefully when libfido2 is too old --- configure.ac | 11 ++++++++--- sk-usbhid.c | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 0f15ef2bf..756e26572 100644 --- a/configure.ac +++ b/configure.ac @@ -3180,9 +3180,14 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" = "xyes" ; then ], [ AC_MSG_ERROR([no usable libfido2 found]) ], [ $OTHERLIBS ] ) - AC_CHECK_LIB([fido2], [fido_cred_set_prot], [], - [ AC_MSG_ERROR([libfido2 missing fido_cred_set_prot; please use libfido2 >= 1.4.0]) ], - ) + saved_LIBS="$LIBS" + LIBS="$LIBS $LIBFIDO2" + AC_CHECK_FUNCS([ \ + fido_cred_set_prot \ + fido_dev_get_touch_status \ + fido_dev_supports_cred_prot \ + ]) + LIBS="$saved_LIBS" AC_CHECK_HEADER([fido.h], [], AC_MSG_ERROR([missing fido.h from libfido2])) AC_CHECK_HEADER([fido/credman.h], [], diff --git a/sk-usbhid.c b/sk-usbhid.c index 0305683fe..0b11e40aa 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -41,6 +41,17 @@ #include #include +/* backwards compat for libfido2 */ +#ifndef HAVE_FIDO_DEV_SUPPORTS_CRED_PROT +#define fido_dev_supports_cred_prot(x) (0) +#endif +#ifndef HAVE_FIDO_DEV_GET_TOUCH_BEGIN +#define fido_dev_get_touch_begin(x) (FIDO_ERR_UNSUPPORTED_OPTION) +#endif +#ifndef HAVE_FIDO_DEV_GET_TOUCH_STATUS +#define fido_dev_get_touch_status(x, y, z) (FIDO_ERR_UNSUPPORTED_OPTION) +#endif + #ifndef SK_STANDALONE # include "log.h" # include "xmalloc.h" @@ -377,6 +388,11 @@ sk_select_by_touch(const fido_dev_info_t *devlist, size_t ndevs) size_t skvcnt, idx; int touch, ms_remain; +#ifndef HAVE_FIDO_DEV_GET_TOUCH_STATUS + skdebug(__func__, "libfido2 version does not support a feature needed for multiple tokens. Please upgrade to >=1.5.0"); + return NULL; +#endif + if ((skv = sk_openv(devlist, ndevs, &skvcnt)) == NULL) { skdebug(__func__, "sk_openv failed"); return NULL; @@ -705,6 +721,11 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, goto out; } if ((flags & (SSH_SK_RESIDENT_KEY|SSH_SK_USER_VERIFICATION_REQD)) != 0) { +#ifndef HAVE_FIDO_DEV_SUPPORTS_CRED_PROT + skdebug(__func__, "libfido2 version does not support a feature required for this operation. Please upgrade to >=1.5.0"); + ret = SSH_SK_ERR_UNSUPPORTED; + goto out; +#endif if (!fido_dev_supports_cred_prot(sk->dev)) { skdebug(__func__, "%s does not support credprot, " "refusing to create unprotected " -- cgit v1.2.3 From e32479645ce649b444ba5c6e7151304306a09654 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 03:55:22 +0000 Subject: upstream: adapt to API changes OpenBSD-Regress-ID: 5f147990cb67094fe554333782ab268a572bb2dd --- regress/unittests/sshkey/test_fuzz.c | 4 ++-- regress/unittests/sshkey/test_sshkey.c | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/regress/unittests/sshkey/test_fuzz.c b/regress/unittests/sshkey/test_fuzz.c index 359811893..f111446a9 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.11 2019/11/25 10:32:35 djm Exp $ */ +/* $OpenBSD: test_fuzz.c,v 1.12 2020/08/27 03:55:22 djm Exp $ */ /* * Fuzz tests for key parsing * @@ -88,7 +88,7 @@ sig_fuzz(struct sshkey *k, const char *sig_alg) fuzzers |= FUZZ_2_BIT_FLIP; ASSERT_INT_EQ(sshkey_sign(k, &sig, &l, c, sizeof(c), - sig_alg, NULL, 0), 0); + sig_alg, NULL, NULL, 0), 0); ASSERT_SIZE_T_GT(l, 0); fuzz = fuzz_begin(fuzzers, sig, l); ASSERT_INT_EQ(sshkey_verify(k, sig, l, c, sizeof(c), NULL, 0, NULL), 0); diff --git a/regress/unittests/sshkey/test_sshkey.c b/regress/unittests/sshkey/test_sshkey.c index 025bb9815..7dc20cc85 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.20 2019/11/25 10:32:35 djm Exp $ */ +/* $OpenBSD: test_sshkey.c,v 1.21 2020/08/27 03:55:22 djm Exp $ */ /* * Regress test for sshkey.h key management API * @@ -101,7 +101,7 @@ build_cert(struct sshbuf *b, struct sshkey *k, const char *type, ASSERT_INT_EQ(sshbuf_put_string(b, NULL, 0), 0); /* reserved */ ASSERT_INT_EQ(sshbuf_put_stringb(b, ca_buf), 0); /* signature key */ ASSERT_INT_EQ(sshkey_sign(sign_key, &sigblob, &siglen, - sshbuf_ptr(b), sshbuf_len(b), sig_alg, NULL, 0), 0); + sshbuf_ptr(b), sshbuf_len(b), sig_alg, NULL, NULL, 0), 0); ASSERT_INT_EQ(sshbuf_put_string(b, sigblob, siglen), 0); /* signature */ free(sigblob); @@ -120,7 +120,8 @@ signature_test(struct sshkey *k, struct sshkey *bad, const char *sig_alg, size_t len; u_char *sig; - ASSERT_INT_EQ(sshkey_sign(k, &sig, &len, d, l, sig_alg, NULL, 0), 0); + ASSERT_INT_EQ(sshkey_sign(k, &sig, &len, d, l, sig_alg, + NULL, NULL, 0), 0); ASSERT_SIZE_T_GT(len, 8); ASSERT_PTR_NE(sig, NULL); ASSERT_INT_EQ(sshkey_verify(k, sig, len, d, l, NULL, 0, NULL), 0); @@ -437,7 +438,7 @@ sshkey_tests(void) put_opt(k1->cert->extensions, "permit-X11-forwarding", NULL); put_opt(k1->cert->extensions, "permit-agent-forwarding", NULL); ASSERT_INT_EQ(sshkey_from_private(k2, &k1->cert->signature_key), 0); - ASSERT_INT_EQ(sshkey_certify(k1, k2, NULL, NULL), 0); + ASSERT_INT_EQ(sshkey_certify(k1, k2, NULL, NULL, NULL), 0); b = sshbuf_new(); ASSERT_PTR_NE(b, NULL); ASSERT_INT_EQ(sshkey_putb(k1, b), 0); -- cgit v1.2.3 From 744df42a129d7d7db26947b7561be32edac89f88 Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Thu, 27 Aug 2020 06:15:22 +0000 Subject: upstream: tweak previous; OpenBSD-Commit-ID: 92714b6531e244e4da401b2defaa376374e24be7 --- ssh-keygen.1 | 4 ++-- sshd_config.5 | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ssh-keygen.1 b/ssh-keygen.1 index e18fcde01..c51a0d9c8 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.207 2020/08/27 01:08:45 djm Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.208 2020/08/27 06:15:22 jmc Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -516,7 +516,7 @@ for the same application name. .It Cm verify-required Indicate that this private key should require user verification for each signature. -Not all FIDO tokens support support this option. +Not all FIDO tokens support this option. Currently PIN authentication is the only supported verification method, but other methods may be supported in the future. .It Cm write-attestation Ns = Ns Ar path diff --git a/sshd_config.5 b/sshd_config.5 index a1898baae..186bce4fc 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.313 2020/08/27 01:07:10 djm Exp $ +.\" $OpenBSD: sshd_config.5,v 1.314 2020/08/27 06:15:22 jmc Exp $ .Dd $Mdocdate: August 27 2020 $ .Dt SSHD_CONFIG 5 .Os @@ -1501,14 +1501,14 @@ flag disables this override. .Pp The .Cm verify-required -option requires a FIDO key signature attest that verified the user, e.g. -via a PIN. +option requires a FIDO key signature attest that verified the user, +e.g. via a PIN. .Pp Neither the .Cm touch-required or .Cm verify-required -options have any effect for other, non-FIDO public key types. +options have any effect for other, non-FIDO, public key types. .It Cm PubkeyAuthentication Specifies whether public key authentication is allowed. The default is -- cgit v1.2.3 From b969072cc3d62d05cb41bc6d6f3c22c764ed932f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 09:43:28 +0000 Subject: upstream: skip a bit more FIDO token selection logic when only a single token is attached. with Pedro Martelletto OpenBSD-Commit-ID: e4a324bd9814227ec1faa8cb619580e661cca9ac --- sk-usbhid.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sk-usbhid.c b/sk-usbhid.c index 0b11e40aa..98e8ccf10 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -367,8 +367,13 @@ sk_select_by_cred(const fido_dev_info_t *devlist, size_t ndevs, skdebug(__func__, "sk_openv failed"); return NULL; } + if (skvcnt == 1) { + sk = skv[0]; + skv[0] = NULL; + goto out; + } sk = NULL; - for (i = 0; i < skvcnt; i++) + for (i = 0; i < skvcnt; i++) { if (sk_try(skv[i], application, key_handle, key_handle_len) == 0) { sk = skv[i]; @@ -376,6 +381,8 @@ sk_select_by_cred(const fido_dev_info_t *devlist, size_t ndevs, skdebug(__func__, "found key in %s", sk->path); break; } + } + out: sk_closev(skv, skvcnt); return sk; } -- cgit v1.2.3 From d6f45cdde031acdf434bbb27235a1055621915f4 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Thu, 27 Aug 2020 09:46:04 +0000 Subject: upstream: debug()-print a little info about FIDO-specific key fields via "ssh-keygen -vyf /path/key" OpenBSD-Commit-ID: cf315c4fe77db43947d111b00155165cb6b577cf --- ssh-keygen.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ssh-keygen.c b/ssh-keygen.c index 664724276..64cee4de0 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.418 2020/08/27 01:08:45 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.419 2020/08/27 09:46:04 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -815,10 +815,14 @@ do_print_public(struct passwd *pw) prv = load_identity(identity_file, &comment); if ((r = sshkey_write(prv, stdout)) != 0) error("sshkey_write failed: %s", ssh_err(r)); - sshkey_free(prv); if (comment != NULL && *comment != '\0') fprintf(stdout, " %s", comment); fprintf(stdout, "\n"); + if (sshkey_is_sk(prv)) { + debug("sk_application: \"%s\", sk_flags 0x%02x", + prv->sk_application, prv->sk_flags); + } + sshkey_free(prv); free(comment); exit(0); } -- cgit v1.2.3 From ce178be0d954b210c958bc2b9e998cd6a7aa73a9 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Thu, 27 Aug 2020 20:01:52 +1000 Subject: tweak back-compat for older libfido2 --- configure.ac | 1 + sk-usbhid.c | 26 ++++++++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/configure.ac b/configure.ac index 756e26572..7386d742d 100644 --- a/configure.ac +++ b/configure.ac @@ -3183,6 +3183,7 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" = "xyes" ; then saved_LIBS="$LIBS" LIBS="$LIBS $LIBFIDO2" AC_CHECK_FUNCS([ \ + fido_cred_prot \ fido_cred_set_prot \ fido_dev_get_touch_status \ fido_dev_supports_cred_prot \ diff --git a/sk-usbhid.c b/sk-usbhid.c index 98e8ccf10..9b1f4b707 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -42,6 +42,12 @@ #include /* backwards compat for libfido2 */ +#ifndef HAVE_FIDO_CRED_PROD +#define fido_cred_prot(x) (0) +#endif +#ifndef HAVE_FIDO_CRED_SET_PROT +#define fido_cred_set_prot(x, y) (FIDO_ERR_UNSUPPORTED_OPTION) +#endif #ifndef HAVE_FIDO_DEV_SUPPORTS_CRED_PROT #define fido_dev_supports_cred_prot(x) (0) #endif @@ -51,6 +57,12 @@ #ifndef HAVE_FIDO_DEV_GET_TOUCH_STATUS #define fido_dev_get_touch_status(x, y, z) (FIDO_ERR_UNSUPPORTED_OPTION) #endif +#ifndef FIDO_CRED_PROT_UV_REQUIRED +#define FIDO_CRED_PROT_UV_REQUIRED 0 +#endif +#ifndef FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID +#define FIDO_CRED_PROT_UV_OPTIONAL_WITH_ID 0 +#endif #ifndef SK_STANDALONE # include "log.h" @@ -395,11 +407,6 @@ sk_select_by_touch(const fido_dev_info_t *devlist, size_t ndevs) size_t skvcnt, idx; int touch, ms_remain; -#ifndef HAVE_FIDO_DEV_GET_TOUCH_STATUS - skdebug(__func__, "libfido2 version does not support a feature needed for multiple tokens. Please upgrade to >=1.5.0"); - return NULL; -#endif - if ((skv = sk_openv(devlist, ndevs, &skvcnt)) == NULL) { skdebug(__func__, "sk_openv failed"); return NULL; @@ -413,6 +420,11 @@ sk_select_by_touch(const fido_dev_info_t *devlist, size_t ndevs) } goto out; } +#ifndef HAVE_FIDO_DEV_GET_TOUCH_STATUS + skdebug(__func__, "libfido2 version does not support a feature needed for multiple tokens. Please upgrade to >=1.5.0"); + goto out; +#endif + if (sk_touch_begin(skv, skvcnt) == -1) { skdebug(__func__, "sk_touch_begin failed"); goto out; @@ -728,10 +740,12 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, goto out; } if ((flags & (SSH_SK_RESIDENT_KEY|SSH_SK_USER_VERIFICATION_REQD)) != 0) { -#ifndef HAVE_FIDO_DEV_SUPPORTS_CRED_PROT +#if !defined(HAVE_FIDO_DEV_SUPPORTS_CRED_PROT) || \ + !defined(HAVE_FIDO_CRED_SET_PROT) skdebug(__func__, "libfido2 version does not support a feature required for this operation. Please upgrade to >=1.5.0"); ret = SSH_SK_ERR_UNSUPPORTED; goto out; + credprot = 0; (void)credprot; /* avoid warning */ #endif if (!fido_dev_supports_cred_prot(sk->dev)) { skdebug(__func__, "%s does not support credprot, " -- cgit v1.2.3 From 2a3a9822311a565a9df48ed3b6a3c972f462bd7d Mon Sep 17 00:00:00 2001 From: "jmc@openbsd.org" Date: Thu, 27 Aug 2020 12:34:00 +0000 Subject: upstream: sentence fix; from pedro martelletto OpenBSD-Commit-ID: f95b84a1e94e9913173229f3787448eea2f8a575 --- sshd_config.5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sshd_config.5 b/sshd_config.5 index 186bce4fc..6fa421cae 100644 --- a/sshd_config.5 +++ b/sshd_config.5 @@ -33,7 +33,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $OpenBSD: sshd_config.5,v 1.314 2020/08/27 06:15:22 jmc Exp $ +.\" $OpenBSD: sshd_config.5,v 1.315 2020/08/27 12:34:00 jmc Exp $ .Dd $Mdocdate: August 27 2020 $ .Dt SSHD_CONFIG 5 .Os @@ -1501,7 +1501,7 @@ flag disables this override. .Pp The .Cm verify-required -option requires a FIDO key signature attest that verified the user, +option requires a FIDO key signature attest that the user was verified, e.g. via a PIN. .Pp Neither the -- cgit v1.2.3 From 72730249b38a676da94a1366b54a6e96e6928bcb Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 28 Aug 2020 03:15:52 +0000 Subject: upstream: Check that the addresses supplied to Match Address and Match LocalAddress are valid when parsing in config-test mode. This will catch address/mask mismatches before they cause problems at runtime. Found by Daniel Stocker, ok djm@ OpenBSD-Commit-ID: 2d0b10c69fad5d8fda4c703e7c6804935289378b --- servconf.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/servconf.c b/servconf.c index 1bc7ee31a..2ce04cf14 100644 --- a/servconf.c +++ b/servconf.c @@ -1,5 +1,5 @@ -/* $OpenBSD: servconf.c,v 1.368 2020/08/27 01:07:09 djm Exp $ */ +/* $OpenBSD: servconf.c,v 1.369 2020/08/28 03:15:52 dtucker Exp $ */ /* * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland * All rights reserved @@ -1119,6 +1119,9 @@ match_cfg_line(char **condition, int line, struct connection_info *ci) "%.100s' at line %d", ci->host, arg, line); } else if (strcasecmp(attrib, "address") == 0) { if (ci == NULL || (ci->test && ci->address == NULL)) { + if (addr_match_list(NULL, arg) != 0) + fatal("Invalid Match address argument " + "'%s' at line %d", arg, line); result = 0; continue; } @@ -1138,6 +1141,10 @@ match_cfg_line(char **condition, int line, struct connection_info *ci) } } else if (strcasecmp(attrib, "localaddress") == 0){ if (ci == NULL || (ci->test && ci->laddress == NULL)) { + if (addr_match_list(NULL, arg) != 0) + fatal("Invalid Match localaddress " + "argument '%s' at line %d", arg, + line); result = 0; continue; } -- cgit v1.2.3 From 39e88aeff9c7cb6862b37ad1a87a03ebbb38c233 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 31 Aug 2020 00:17:41 +0000 Subject: upstream: Add RCS IDs to the few files that are missing them; from Pedro Martelletto OpenBSD-Commit-ID: 39aa37a43d0c75ec87f1659f573d3b5867e4a3b3 --- PROTOCOL.agent | 2 ++ PROTOCOL.sshsig | 1 + PROTOCOL.u2f | 1 + sk-usbhid.c | 1 + sshsig.c | 1 + sshsig.h | 1 + 6 files changed, 7 insertions(+) diff --git a/PROTOCOL.agent b/PROTOCOL.agent index da3381942..6947b46cd 100644 --- a/PROTOCOL.agent +++ b/PROTOCOL.agent @@ -2,4 +2,6 @@ This file used to contain a description of the SSH agent protocol implemented by OpenSSH. It has since been superseded by an Internet- draft that is available from: +$OpenBSD: PROTOCOL.agent,v 1.13 2020/08/31 00:17:41 djm Exp $ + https://tools.ietf.org/html/draft-miller-ssh-agent-02 diff --git a/PROTOCOL.sshsig b/PROTOCOL.sshsig index db18458fa..78457ddfc 100644 --- a/PROTOCOL.sshsig +++ b/PROTOCOL.sshsig @@ -97,3 +97,4 @@ the reserved field if it is not empty. The data is concatenated and passed to the SSH signing function. +$OpenBSD: PROTOCOL.sshsig,v 1.4 2020/08/31 00:17:41 djm Exp $ diff --git a/PROTOCOL.u2f b/PROTOCOL.u2f index fd31ea4ef..5b8a06277 100644 --- a/PROTOCOL.u2f +++ b/PROTOCOL.u2f @@ -368,3 +368,4 @@ In OpenSSH, the middleware will be invoked by using a similar mechanism to ssh-pkcs11-helper to provide address-space containment of the middleware from ssh-agent. +$OpenBSD: PROTOCOL.u2f,v 1.25 2020/08/31 00:17:41 djm Exp $ diff --git a/sk-usbhid.c b/sk-usbhid.c index 9b1f4b707..7c8ff8d98 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -1,3 +1,4 @@ +/* $OpenBSD: sk-usbhid.c,v 1.25 2020/08/31 00:17:41 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl * Copyright (c) 2020 Pedro Martelletto diff --git a/sshsig.c b/sshsig.c index 658b8c852..0bd7e5cb7 100644 --- a/sshsig.c +++ b/sshsig.c @@ -1,3 +1,4 @@ +/* $OpenBSD: sshsig.c,v 1.17 2020/08/31 00:17:41 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * diff --git a/sshsig.h b/sshsig.h index 44157bc2a..67794a971 100644 --- a/sshsig.h +++ b/sshsig.h @@ -1,3 +1,4 @@ +/* $OpenBSD: sshsig.h,v 1.9 2020/08/31 00:17:41 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * -- cgit v1.2.3 From 785f0f315bf7ac5909e988bb1ac3e019fb5e1594 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 31 Aug 2020 04:33:17 +0000 Subject: upstream: refuse to add verify-required (PINful) FIDO keys to ssh-agent until the agent supports them properly OpenBSD-Commit-ID: 125bd55a8df32c87c3ec33c6ebe437673a3d037e --- ssh-add.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/ssh-add.c b/ssh-add.c index 931197474..936dc2128 100644 --- a/ssh-add.c +++ b/ssh-add.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-add.c,v 1.156 2020/06/26 05:04:07 djm Exp $ */ +/* $OpenBSD: ssh-add.c,v 1.157 2020/08/31 04:33:17 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -67,6 +67,7 @@ #include "ssherr.h" #include "digest.h" #include "ssh-sk.h" +#include "sk-api.h" /* argv0 */ extern char *__progname; @@ -348,12 +349,20 @@ add_file(int agent_fd, const char *filename, int key_only, int qflag, ssh_free_identitylist(idlist); } - if (!sshkey_is_sk(private)) - skprovider = NULL; /* Don't send constraint for other keys */ - else if (skprovider == NULL) { - fprintf(stderr, "Cannot load authenticator-hosted key %s " - "without provider\n", filename); - goto out; + if (sshkey_is_sk(private)) { + if (skprovider == NULL) { + fprintf(stderr, "Cannot load FIDO key %s " + "without provider\n", filename); + goto out; + } + if ((private->sk_flags & SSH_SK_USER_VERIFICATION_REQD) != 0) { + fprintf(stderr, "FIDO verify-required key %s is not " + "currently supported by ssh-agent\n", filename); + goto out; + } + } else { + /* Don't send provider constraint for other keys */ + skprovider = NULL; } if ((r = ssh_add_identity_constrained(agent_fd, private, comment, -- cgit v1.2.3 From c1c44eeecddf093a7983bd91e70b446de789b363 Mon Sep 17 00:00:00 2001 From: pedro martelletto Date: Tue, 1 Sep 2020 17:01:55 +0200 Subject: configure.ac: fix libfido2 back-compat - HAVE_FIDO_CRED_PROD -> HAVE_FIDO_CRED_PROT; - check for fido_dev_get_touch_begin(), so that HAVE_FIDO_DEV_GET_TOUCH_BEGIN gets defined. --- configure.ac | 1 + sk-usbhid.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 7386d742d..9ae199bc7 100644 --- a/configure.ac +++ b/configure.ac @@ -3185,6 +3185,7 @@ if test "x$enable_sk" = "xyes" -a "x$enable_sk_internal" = "xyes" ; then AC_CHECK_FUNCS([ \ fido_cred_prot \ fido_cred_set_prot \ + fido_dev_get_touch_begin \ fido_dev_get_touch_status \ fido_dev_supports_cred_prot \ ]) diff --git a/sk-usbhid.c b/sk-usbhid.c index 7c8ff8d98..de85b2cb3 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -43,7 +43,7 @@ #include /* backwards compat for libfido2 */ -#ifndef HAVE_FIDO_CRED_PROD +#ifndef HAVE_FIDO_CRED_PROT #define fido_cred_prot(x) (0) #endif #ifndef HAVE_FIDO_CRED_SET_PROT -- cgit v1.2.3 From c76773524179cb654ff838dd43ba1ddb155bafaa Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 9 Sep 2020 03:08:01 +0000 Subject: upstream: when writing an attestation blob for a FIDO key, record all the data needed to verify the attestation. Previously we were missing the "authenticator data" that is included in the signature. spotted by Ian Haken feedback Pedro Martelletto and Ian Haken; ok markus@ OpenBSD-Commit-ID: 8439896e63792b2db99c6065dd9a45eabbdb7e0a --- PROTOCOL.u2f | 98 +++++++++++------------------------------------------------- sk-api.h | 6 ++-- sk-usbhid.c | 13 +++++++- ssh-keygen.1 | 9 +++--- ssh-keygen.c | 44 ++++++++++++++++----------- ssh-sk.c | 44 ++++++++++++++++++--------- 6 files changed, 96 insertions(+), 118 deletions(-) diff --git a/PROTOCOL.u2f b/PROTOCOL.u2f index 5b8a06277..f8ca56b11 100644 --- a/PROTOCOL.u2f +++ b/PROTOCOL.u2f @@ -154,6 +154,16 @@ by trusted hardware before it will issue a certificate. To support this case, OpenSSH optionally allows retaining the attestation information at the time of key generation. It will take the following format: + string "ssh-sk-attest-v01" + string attestation certificate + string enrollment signature + string authenticator data (CBOR encoded) + uint32 reserved flags + string reserved string + +A previous version of this format, emitted prior to OpenSSH 8.4 omitted +the authenticator data. + string "ssh-sk-attest-v00" string attestation certificate string enrollment signature @@ -267,87 +277,15 @@ regress testing. For this reason, OpenSSH shall support a dynamically- loaded middleware libraries to communicate with security keys, but offer support for the common case of USB HID security keys internally. -The middleware library need only expose a handful of functions: - - #define SSH_SK_VERSION_MAJOR 0x00050000 /* API version */ - #define SSH_SK_VERSION_MAJOR_MASK 0xffff0000 - - /* Flags */ - #define SSH_SK_USER_PRESENCE_REQD 0x01 - #define SSH_SK_USER_VERIFICATION_REQD 0x04 - #define SSH_SK_RESIDENT_KEY 0x20 - - /* Algs */ - #define SSH_SK_ECDSA 0x00 - #define SSH_SK_ED25519 0x01 - - /* Error codes */ - #define SSH_SK_ERR_GENERAL -1 - #define SSH_SK_ERR_UNSUPPORTED -2 - #define SSH_SK_ERR_PIN_REQUIRED -3 - #define SSH_SK_ERR_DEVICE_NOT_FOUND -4 - - struct sk_enroll_response { - uint8_t *public_key; - size_t public_key_len; - uint8_t *key_handle; - size_t key_handle_len; - uint8_t *signature; - size_t signature_len; - uint8_t *attestation_cert; - size_t attestation_cert_len; - }; - - struct sk_sign_response { - uint8_t flags; - uint32_t counter; - uint8_t *sig_r; - size_t sig_r_len; - uint8_t *sig_s; - size_t sig_s_len; - }; - - struct sk_resident_key { - uint32_t alg; - size_t slot; - char *application; - struct sk_enroll_response key; - }; - - struct sk_option { - char *name; - char *value; - uint8_t important; - }; - - /* Return the version of the middleware API */ - uint32_t sk_api_version(void); - - /* Enroll a U2F key (private key generation) */ - int sk_enroll(uint32_t alg, - const uint8_t *challenge, size_t challenge_len, - const char *application, uint8_t flags, const char *pin, - struct sk_option **options, - struct sk_enroll_response **enroll_response); - - /* Sign a challenge */ - int sk_sign(uint32_t alg, const uint8_t *message, size_t message_len, - const char *application, - const uint8_t *key_handle, size_t key_handle_len, - uint8_t flags, const char *pin, struct sk_option **options, - struct sk_sign_response **sign_response); - - /* Enumerate all resident keys */ - int sk_load_resident_keys(const char *pin, struct sk_option **options, - struct sk_resident_key ***rks, size_t *nrks); - -The SSH_SK_VERSION_MAJOR should be incremented for each incompatible +The middleware library need only expose a handful of functions and +numbers listed in sk-api.h. Included in the defined numbers is a +SSH_SK_VERSION_MAJOR that should be incremented for each incompatible API change. -The options may be used to pass miscellaneous options to the middleware -as a NULL-terminated array of pointers to struct sk_option. The middleware -may ignore unsupported or unknown options unless the "important" flag is -set, in which case it should return failure if an unsupported option is +miscellaneous options may be passed to the middleware as a NULL- +terminated array of pointers to struct sk_option. The middleware may +ignore unsupported or unknown options unless the "required" flag is set, +in which case it should return failure if an unsupported option is requested. At present the following options names are supported: @@ -368,4 +306,4 @@ In OpenSSH, the middleware will be invoked by using a similar mechanism to ssh-pkcs11-helper to provide address-space containment of the middleware from ssh-agent. -$OpenBSD: PROTOCOL.u2f,v 1.25 2020/08/31 00:17:41 djm Exp $ +$OpenBSD: PROTOCOL.u2f,v 1.26 2020/09/09 03:08:01 djm Exp $ diff --git a/sk-api.h b/sk-api.h index cc32cd4cc..df17ca540 100644 --- a/sk-api.h +++ b/sk-api.h @@ -1,4 +1,4 @@ -/* $OpenBSD: sk-api.h,v 1.10 2020/08/27 01:08:19 djm Exp $ */ +/* $OpenBSD: sk-api.h,v 1.11 2020/09/09 03:08:01 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -47,6 +47,8 @@ struct sk_enroll_response { size_t signature_len; uint8_t *attestation_cert; size_t attestation_cert_len; + uint8_t *authdata; + size_t authdata_len; }; struct sk_sign_response { @@ -72,7 +74,7 @@ struct sk_option { uint8_t required; }; -#define SSH_SK_VERSION_MAJOR 0x00060000 /* current API version */ +#define SSH_SK_VERSION_MAJOR 0x00070000 /* current API version */ #define SSH_SK_VERSION_MAJOR_MASK 0xffff0000 /* Return the version of the middleware API */ diff --git a/sk-usbhid.c b/sk-usbhid.c index de85b2cb3..007c59644 100644 --- a/sk-usbhid.c +++ b/sk-usbhid.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sk-usbhid.c,v 1.25 2020/08/31 00:17:41 djm Exp $ */ +/* $OpenBSD: sk-usbhid.c,v 1.26 2020/09/09 03:08:01 djm Exp $ */ /* * Copyright (c) 2019 Markus Friedl * Copyright (c) 2020 Pedro Martelletto @@ -822,6 +822,16 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, memcpy(response->attestation_cert, ptr, len); response->attestation_cert_len = len; } + if ((ptr = fido_cred_authdata_ptr(cred)) != NULL) { + len = fido_cred_authdata_len(cred); + debug3("%s: authdata len=%zu", __func__, len); + if ((response->authdata = calloc(1, len)) == NULL) { + skdebug(__func__, "calloc authdata failed"); + goto out; + } + memcpy(response->authdata, ptr, len); + response->authdata_len = len; + } *enroll_response = response; response = NULL; ret = 0; @@ -832,6 +842,7 @@ sk_enroll(uint32_t alg, const uint8_t *challenge, size_t challenge_len, free(response->key_handle); free(response->signature); free(response->attestation_cert); + free(response->authdata); free(response); } sk_close(sk); diff --git a/ssh-keygen.1 b/ssh-keygen.1 index c51a0d9c8..3ae596caa 100644 --- a/ssh-keygen.1 +++ b/ssh-keygen.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: ssh-keygen.1,v 1.208 2020/08/27 06:15:22 jmc Exp $ +.\" $OpenBSD: ssh-keygen.1,v 1.209 2020/09/09 03:08:01 djm Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -35,7 +35,7 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.Dd $Mdocdate: August 27 2020 $ +.Dd $Mdocdate: September 9 2020 $ .Dt SSH-KEYGEN 1 .Os .Sh NAME @@ -520,9 +520,10 @@ Not all FIDO tokens support this option. Currently PIN authentication is the only supported verification method, but other methods may be supported in the future. .It Cm write-attestation Ns = Ns Ar path -May be used at key generation time to record the attestation certificate +May be used at key generation time to record the attestation data returned from FIDO tokens during key generation. -By default this information is discarded. +Please note that this information is potentially sensitive. +By default, this information is discarded. .El .Pp The diff --git a/ssh-keygen.c b/ssh-keygen.c index 64cee4de0..a12b79a56 100644 --- a/ssh-keygen.c +++ b/ssh-keygen.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-keygen.c,v 1.419 2020/08/27 09:46:04 djm Exp $ */ +/* $OpenBSD: ssh-keygen.c,v 1.420 2020/09/09 03:08:01 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1994 Tatu Ylonen , Espoo, Finland @@ -3071,6 +3071,27 @@ do_download_sk(const char *skprovider, const char *device) return ret; } +static void +save_attestation(struct sshbuf *attest, const char *path) +{ + mode_t omask; + int r; + + if (path == NULL) + return; /* nothing to do */ + if (attest == NULL || sshbuf_len(attest) == 0) + fatal("Enrollment did not return attestation data"); + omask = umask(077); + r = sshbuf_write_file(path, attest); + umask(omask); + if (r != 0) + fatal("Unable to write attestation data \"%s\": %s", path, + ssh_err(r)); + if (!quiet) + printf("Your FIDO attestation certificate has been saved in " + "%s\n", path); +} + static void usage(void) { @@ -3137,7 +3158,7 @@ main(int argc, char **argv) unsigned long long cert_serial = 0; char *identity_comment = NULL, *ca_key_path = NULL, **opts = NULL; char *sk_application = NULL, *sk_device = NULL, *sk_user = NULL; - char *sk_attestaion_path = NULL; + char *sk_attestation_path = NULL; struct sshbuf *challenge = NULL, *attest = NULL; size_t i, nopts = 0; u_int32_t bits = 0; @@ -3593,7 +3614,7 @@ main(int argc, char **argv) } } else if (strncasecmp(opts[i], "write-attestation=", 18) == 0) { - sk_attestaion_path = opts[i] + 18; + sk_attestation_path = opts[i] + 18; } else if (strncasecmp(opts[i], "application=", 12) == 0) { sk_application = xstrdup(opts[i] + 12); @@ -3715,20 +3736,9 @@ main(int argc, char **argv) free(fp); } - if (sk_attestaion_path != NULL) { - if (attest == NULL || sshbuf_len(attest) == 0) { - fatal("Enrollment did not return attestation " - "certificate"); - } - if ((r = sshbuf_write_file(sk_attestaion_path, attest)) != 0) { - fatal("Unable to write attestation certificate " - "\"%s\": %s", sk_attestaion_path, ssh_err(r)); - } - if (!quiet) { - printf("Your FIDO attestation certificate has been " - "saved in %s\n", sk_attestaion_path); - } - } + if (sk_attestation_path != NULL) + save_attestation(attest, sk_attestation_path); + sshbuf_free(attest); sshkey_free(public); diff --git a/ssh-sk.c b/ssh-sk.c index 89478aff0..1455df635 100644 --- a/ssh-sk.c +++ b/ssh-sk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-sk.c,v 1.31 2020/08/27 01:08:19 djm Exp $ */ +/* $OpenBSD: ssh-sk.c,v 1.32 2020/09/09 03:08:02 djm Exp $ */ /* * Copyright (c) 2019 Google LLC * @@ -174,6 +174,7 @@ sshsk_free_enroll_response(struct sk_enroll_response *r) freezero(r->public_key, r->public_key_len); freezero(r->signature, r->signature_len); freezero(r->attestation_cert, r->attestation_cert_len); + freezero(r->authdata, r->authdata_len); freezero(r, sizeof(*r)); } @@ -419,6 +420,31 @@ make_options(const char *device, const char *user_id, return ret; } + +static int +fill_attestation_blob(const struct sk_enroll_response *resp, + struct sshbuf *attest) +{ + int r; + + if (attest == NULL) + return 0; /* nothing to do */ + if ((r = sshbuf_put_cstring(attest, "ssh-sk-attest-v01")) != 0 || + (r = sshbuf_put_string(attest, + resp->attestation_cert, resp->attestation_cert_len)) != 0 || + (r = sshbuf_put_string(attest, + resp->signature, resp->signature_len)) != 0 || + (r = sshbuf_put_string(attest, + resp->authdata, resp->authdata_len)) != 0 || + (r = sshbuf_put_u32(attest, 0)) != 0 || /* resvd flags */ + (r = sshbuf_put_string(attest, NULL, 0)) != 0 /* resvd */) { + error("%s: buffer error: %s", __func__, ssh_err(r)); + return r; + } + /* success */ + return 0; +} + int sshsk_enroll(int type, const char *provider_path, const char *device, const char *application, const char *userid, uint8_t flags, @@ -506,19 +532,9 @@ sshsk_enroll(int type, const char *provider_path, const char *device, goto out; /* Optionally fill in the attestation information */ - if (attest != NULL) { - if ((r = sshbuf_put_cstring(attest, - "ssh-sk-attest-v00")) != 0 || - (r = sshbuf_put_string(attest, - resp->attestation_cert, resp->attestation_cert_len)) != 0 || - (r = sshbuf_put_string(attest, - resp->signature, resp->signature_len)) != 0 || - (r = sshbuf_put_u32(attest, 0)) != 0 || /* resvd flags */ - (r = sshbuf_put_string(attest, NULL, 0)) != 0 /* resvd */) { - error("%s: buffer error: %s", __func__, ssh_err(r)); - goto out; - } - } + if ((r = fill_attestation_blob(resp, attest)) != 0) + goto out; + /* success */ *keyp = key; key = NULL; /* transferred */ -- cgit v1.2.3 From 9afe2a150893b20bdf9eab764978d817b9a7b783 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Fri, 28 Aug 2020 03:17:13 +0000 Subject: upstream: Ensure that address/mask mismatches are flagged at config-check time. ok djm@ OpenBSD-Regress-ID: 8f5f4c2c0bf00e6ceae7a1755a444666de0ea5c2 --- regress/addrmatch.sh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/regress/addrmatch.sh b/regress/addrmatch.sh index e7d29c3f3..26e0c9910 100644 --- a/regress/addrmatch.sh +++ b/regress/addrmatch.sh @@ -1,4 +1,4 @@ -# $OpenBSD: addrmatch.sh,v 1.5 2020/03/13 03:18:45 djm Exp $ +# $OpenBSD: addrmatch.sh,v 1.6 2020/08/28 03:17:13 dtucker Exp $ # Placed in the Public Domain. tid="address match" @@ -52,5 +52,17 @@ run_trial user ::5 somehost ::1 1234 match3 "IP6 localaddress" run_trial user ::5 somehost ::2 5678 match4 "IP6 localport" fi +# +# Check that we catch invalid address/mask in Match Address/Localaddress +# +for i in 10.0.1.0/8 10.0.0.1/24 2000:aa:bb:01::/56; do + for a in address localaddress; do + verbose "test invalid Match $a $i" + echo "Match $a $i" > $OBJ/sshd_proxy + ${SUDO} ${SSHD} -f $OBJ/sshd_proxy -t >/dev/null 2>&1 && \ + fail "accepted invalid match $a $i" + done +done + cp $OBJ/sshd_proxy_bak $OBJ/sshd_proxy rm $OBJ/sshd_proxy_bak -- cgit v1.2.3 From bbf20ac8065905f9cb9aeb8f1df57fcab52ee2fb Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 9 Sep 2020 03:10:21 +0000 Subject: upstream: adapt to SSH_SK_VERSION_MAJOR crank OpenBSD-Regress-ID: 0f3e76bdc8f9dbd9d22707c7bdd86051d5112ab8 --- regress/misc/sk-dummy/sk-dummy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/regress/misc/sk-dummy/sk-dummy.c b/regress/misc/sk-dummy/sk-dummy.c index 792016b33..bf1feec15 100644 --- a/regress/misc/sk-dummy/sk-dummy.c +++ b/regress/misc/sk-dummy/sk-dummy.c @@ -47,7 +47,7 @@ } while (0) #endif -#if SSH_SK_VERSION_MAJOR != 0x00060000 +#if SSH_SK_VERSION_MAJOR != 0x00070000 # error SK API has changed, sk-dummy.c needs an update #endif -- cgit v1.2.3 From 8372bff3a895b84fd78a81dc39da10928b662f5a Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 5 Sep 2020 17:50:01 +0200 Subject: Remove HAVE_MMAP and BROKEN_MMAP BROKEN_MMAP is no longer defined since commit 1cfd5c06efb12 ("Remove portability support for mmap") this commit also removed other HAVE_MMAP user. I didn't find anything that defines HAVE_MMAP. The check does not trigger because compression on server side is by default COMP_DELAYED (2) so it never triggers. Remove remaining HAVE_MMAP and BROKEN_MMAP bits. Signed-off-by: Sebastian Andrzej Siewior --- defines.h | 4 ---- servconf.c | 9 --------- 2 files changed, 13 deletions(-) diff --git a/defines.h b/defines.h index b8ea88b2d..79dcb507f 100644 --- a/defines.h +++ b/defines.h @@ -829,10 +829,6 @@ struct winsize { # define getgroups(a,b) ((a)==0 && (b)==NULL ? NGROUPS_MAX : getgroups((a),(b))) #endif -#if defined(HAVE_MMAP) && defined(BROKEN_MMAP) -# undef HAVE_MMAP -#endif - #ifndef IOV_MAX # if defined(_XOPEN_IOV_MAX) # define IOV_MAX _XOPEN_IOV_MAX diff --git a/servconf.c b/servconf.c index 2ce04cf14..f08e37477 100644 --- a/servconf.c +++ b/servconf.c @@ -495,15 +495,6 @@ fill_default_server_options(ServerOptions *options) options->auth_methods[0] = NULL; options->num_auth_methods = 0; } - -#ifndef HAVE_MMAP - if (use_privsep && options->compression == 1) { - error("This platform does not support both privilege " - "separation and compression"); - error("Compression disabled"); - options->compression = 0; - } -#endif } /* Keyword tokens. */ -- cgit v1.2.3 From a2f3ae386b5f7938ed3c565ad71f30c4f7f010f1 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 5 Sep 2020 17:50:02 +0200 Subject: Move the local m4 macros The `aclocal' step is skipped during `autoreconf' because aclocal.m4 is present. Move the current aclocal.m4 which contains local macros into the m4/ folder. With this change the aclocal.m4 will be re-created during changes to the m4/ macro. This is needed so the `aclocal' can fetch m4 macros from the system if they are references in the configure script. This is a prerequisite to use PKG_CHECK_MODULES. Signed-off-by: Sebastian Andrzej Siewior --- Makefile.in | 2 +- aclocal.m4 | 199 ---------------------------------------------------------- configure.ac | 1 + m4/openssh.m4 | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 201 insertions(+), 200 deletions(-) delete mode 100644 aclocal.m4 create mode 100644 m4/openssh.m4 diff --git a/Makefile.in b/Makefile.in index 6e72136c5..acfb919da 100644 --- a/Makefile.in +++ b/Makefile.in @@ -187,7 +187,7 @@ $(SSHOBJS): Makefile.in config.h $(SSHDOBJS): Makefile.in config.h configure-check: $(srcdir)/configure -$(srcdir)/configure: configure.ac aclocal.m4 +$(srcdir)/configure: configure.ac $(srcdir)/m4/*.m4 @echo "ERROR: configure is out of date; please run ${AUTORECONF} (and configure)" 1>&2 @exit 1 diff --git a/aclocal.m4 b/aclocal.m4 deleted file mode 100644 index b70856e43..000000000 --- a/aclocal.m4 +++ /dev/null @@ -1,199 +0,0 @@ -dnl OpenSSH-specific autoconf macros -dnl - -dnl OSSH_CHECK_CFLAG_COMPILE(check_flag[, define_flag]) -dnl Check that $CC accepts a flag 'check_flag'. If it is supported append -dnl 'define_flag' to $CFLAGS. If 'define_flag' is not specified, then append -dnl 'check_flag'. -AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{ - AC_MSG_CHECKING([if $CC supports compile flag $1]) - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR $1" - _define_flag="$2" - test "x$_define_flag" = "x" && _define_flag="$1" - AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ -#include -#include -int main(int argc, char **argv) { - (void)argv; - /* Some math to catch -ftrapv problems in the toolchain */ - int i = 123 * argc, j = 456 + argc, k = 789 - argc; - float l = i * 2.1; - double m = l / 0.5; - long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; - printf("%d %d %d %f %f %lld %lld\n", i, j, k, l, m, n, o); - /* - * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does - * not understand comments and we don't use the "fallthrough" attribute - * that it's looking for. - */ - switch(i){ - case 0: j += i; - /* FALLTHROUGH */ - default: j += k; - } - exit(0); -} - ]])], - [ -if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null -then - AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" -else - AC_MSG_RESULT([yes]) - CFLAGS="$saved_CFLAGS $_define_flag" -fi], - [ AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" ] - ) -}]) - -dnl OSSH_CHECK_CFLAG_LINK(check_flag[, define_flag]) -dnl Check that $CC accepts a flag 'check_flag'. If it is supported append -dnl 'define_flag' to $CFLAGS. If 'define_flag' is not specified, then append -dnl 'check_flag'. -AC_DEFUN([OSSH_CHECK_CFLAG_LINK], [{ - AC_MSG_CHECKING([if $CC supports compile flag $1 and linking succeeds]) - saved_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $WERROR $1" - _define_flag="$2" - test "x$_define_flag" = "x" && _define_flag="$1" - AC_LINK_IFELSE([AC_LANG_SOURCE([[ -#include -#include -int main(int argc, char **argv) { - (void)argv; - /* Some math to catch -ftrapv problems in the toolchain */ - int i = 123 * argc, j = 456 + argc, k = 789 - argc; - float l = i * 2.1; - double m = l / 0.5; - long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; - long long int p = n * o; - printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); - exit(0); -} - ]])], - [ -if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null -then - AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" -else - AC_MSG_RESULT([yes]) - CFLAGS="$saved_CFLAGS $_define_flag" -fi], - [ AC_MSG_RESULT([no]) - CFLAGS="$saved_CFLAGS" ] - ) -}]) - -dnl OSSH_CHECK_LDFLAG_LINK(check_flag[, define_flag]) -dnl Check that $LD accepts a flag 'check_flag'. If it is supported append -dnl 'define_flag' to $LDFLAGS. If 'define_flag' is not specified, then append -dnl 'check_flag'. -AC_DEFUN([OSSH_CHECK_LDFLAG_LINK], [{ - AC_MSG_CHECKING([if $LD supports link flag $1]) - saved_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $WERROR $1" - _define_flag="$2" - test "x$_define_flag" = "x" && _define_flag="$1" - AC_LINK_IFELSE([AC_LANG_SOURCE([[ -#include -#include -int main(int argc, char **argv) { - (void)argv; - /* Some math to catch -ftrapv problems in the toolchain */ - int i = 123 * argc, j = 456 + argc, k = 789 - argc; - float l = i * 2.1; - double m = l / 0.5; - long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; - long long p = n * o; - printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); - exit(0); -} - ]])], - [ -if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null -then - AC_MSG_RESULT([no]) - LDFLAGS="$saved_LDFLAGS" -else - AC_MSG_RESULT([yes]) - LDFLAGS="$saved_LDFLAGS $_define_flag" -fi ], - [ AC_MSG_RESULT([no]) - LDFLAGS="$saved_LDFLAGS" ] - ) -}]) - -dnl OSSH_CHECK_HEADER_FOR_FIELD(field, header, symbol) -dnl Does AC_EGREP_HEADER on 'header' for the string 'field' -dnl If found, set 'symbol' to be defined. Cache the result. -dnl TODO: This is not foolproof, better to compile and read from there -AC_DEFUN(OSSH_CHECK_HEADER_FOR_FIELD, [ -# look for field '$1' in header '$2' - dnl This strips characters illegal to m4 from the header filename - ossh_safe=`echo "$2" | sed 'y%./+-%__p_%'` - dnl - ossh_varname="ossh_cv_$ossh_safe""_has_"$1 - AC_MSG_CHECKING(for $1 field in $2) - AC_CACHE_VAL($ossh_varname, [ - AC_EGREP_HEADER($1, $2, [ dnl - eval "$ossh_varname=yes" dnl - ], [ dnl - eval "$ossh_varname=no" dnl - ]) dnl - ]) - ossh_result=`eval 'echo $'"$ossh_varname"` - if test -n "`echo $ossh_varname`"; then - AC_MSG_RESULT($ossh_result) - if test "x$ossh_result" = "xyes"; then - AC_DEFINE($3, 1, [Define if you have $1 in $2]) - fi - else - AC_MSG_RESULT(no) - fi -]) - -dnl Check for socklen_t: historically on BSD it is an int, and in -dnl POSIX 1g it is a type of its own, but some platforms use different -dnl types for the argument to getsockopt, getpeername, etc. So we -dnl have to test to find something that will work. -AC_DEFUN([TYPE_SOCKLEN_T], -[ - AC_CHECK_TYPE([socklen_t], ,[ - AC_MSG_CHECKING([for socklen_t equivalent]) - AC_CACHE_VAL([curl_cv_socklen_t_equiv], - [ - # Systems have either "struct sockaddr *" or - # "void *" as the second argument to getpeername - curl_cv_socklen_t_equiv= - for arg2 in "struct sockaddr" void; do - for t in int size_t unsigned long "unsigned long"; do - AC_TRY_COMPILE([ - #include - #include - - int getpeername (int, $arg2 *, $t *); - ],[ - $t len; - getpeername(0,0,&len); - ],[ - curl_cv_socklen_t_equiv="$t" - break - ]) - done - done - - if test "x$curl_cv_socklen_t_equiv" = x; then - AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) - fi - ]) - AC_MSG_RESULT($curl_cv_socklen_t_equiv) - AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, - [type to use in place of socklen_t if not defined])], - [#include -#include ]) -]) - diff --git a/configure.ac b/configure.ac index 9ae199bc7..28947a660 100644 --- a/configure.ac +++ b/configure.ac @@ -14,6 +14,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. AC_INIT([OpenSSH], [Portable], [openssh-unix-dev@mindrot.org]) +AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_SRCDIR([ssh.c]) AC_LANG([C]) diff --git a/m4/openssh.m4 b/m4/openssh.m4 new file mode 100644 index 000000000..b70856e43 --- /dev/null +++ b/m4/openssh.m4 @@ -0,0 +1,199 @@ +dnl OpenSSH-specific autoconf macros +dnl + +dnl OSSH_CHECK_CFLAG_COMPILE(check_flag[, define_flag]) +dnl Check that $CC accepts a flag 'check_flag'. If it is supported append +dnl 'define_flag' to $CFLAGS. If 'define_flag' is not specified, then append +dnl 'check_flag'. +AC_DEFUN([OSSH_CHECK_CFLAG_COMPILE], [{ + AC_MSG_CHECKING([if $CC supports compile flag $1]) + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $WERROR $1" + _define_flag="$2" + test "x$_define_flag" = "x" && _define_flag="$1" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[ +#include +#include +int main(int argc, char **argv) { + (void)argv; + /* Some math to catch -ftrapv problems in the toolchain */ + int i = 123 * argc, j = 456 + argc, k = 789 - argc; + float l = i * 2.1; + double m = l / 0.5; + long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + printf("%d %d %d %f %f %lld %lld\n", i, j, k, l, m, n, o); + /* + * Test fallthrough behaviour. clang 10's -Wimplicit-fallthrough does + * not understand comments and we don't use the "fallthrough" attribute + * that it's looking for. + */ + switch(i){ + case 0: j += i; + /* FALLTHROUGH */ + default: j += k; + } + exit(0); +} + ]])], + [ +if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null +then + AC_MSG_RESULT([no]) + CFLAGS="$saved_CFLAGS" +else + AC_MSG_RESULT([yes]) + CFLAGS="$saved_CFLAGS $_define_flag" +fi], + [ AC_MSG_RESULT([no]) + CFLAGS="$saved_CFLAGS" ] + ) +}]) + +dnl OSSH_CHECK_CFLAG_LINK(check_flag[, define_flag]) +dnl Check that $CC accepts a flag 'check_flag'. If it is supported append +dnl 'define_flag' to $CFLAGS. If 'define_flag' is not specified, then append +dnl 'check_flag'. +AC_DEFUN([OSSH_CHECK_CFLAG_LINK], [{ + AC_MSG_CHECKING([if $CC supports compile flag $1 and linking succeeds]) + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $WERROR $1" + _define_flag="$2" + test "x$_define_flag" = "x" && _define_flag="$1" + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +#include +int main(int argc, char **argv) { + (void)argv; + /* Some math to catch -ftrapv problems in the toolchain */ + int i = 123 * argc, j = 456 + argc, k = 789 - argc; + float l = i * 2.1; + double m = l / 0.5; + long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + long long int p = n * o; + printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); + exit(0); +} + ]])], + [ +if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null +then + AC_MSG_RESULT([no]) + CFLAGS="$saved_CFLAGS" +else + AC_MSG_RESULT([yes]) + CFLAGS="$saved_CFLAGS $_define_flag" +fi], + [ AC_MSG_RESULT([no]) + CFLAGS="$saved_CFLAGS" ] + ) +}]) + +dnl OSSH_CHECK_LDFLAG_LINK(check_flag[, define_flag]) +dnl Check that $LD accepts a flag 'check_flag'. If it is supported append +dnl 'define_flag' to $LDFLAGS. If 'define_flag' is not specified, then append +dnl 'check_flag'. +AC_DEFUN([OSSH_CHECK_LDFLAG_LINK], [{ + AC_MSG_CHECKING([if $LD supports link flag $1]) + saved_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $WERROR $1" + _define_flag="$2" + test "x$_define_flag" = "x" && _define_flag="$1" + AC_LINK_IFELSE([AC_LANG_SOURCE([[ +#include +#include +int main(int argc, char **argv) { + (void)argv; + /* Some math to catch -ftrapv problems in the toolchain */ + int i = 123 * argc, j = 456 + argc, k = 789 - argc; + float l = i * 2.1; + double m = l / 0.5; + long long int n = argc * 12345LL, o = 12345LL * (long long int)argc; + long long p = n * o; + printf("%d %d %d %f %f %lld %lld %lld\n", i, j, k, l, m, n, o, p); + exit(0); +} + ]])], + [ +if $ac_cv_path_EGREP -i "unrecognized option|warning.*ignored" conftest.err >/dev/null +then + AC_MSG_RESULT([no]) + LDFLAGS="$saved_LDFLAGS" +else + AC_MSG_RESULT([yes]) + LDFLAGS="$saved_LDFLAGS $_define_flag" +fi ], + [ AC_MSG_RESULT([no]) + LDFLAGS="$saved_LDFLAGS" ] + ) +}]) + +dnl OSSH_CHECK_HEADER_FOR_FIELD(field, header, symbol) +dnl Does AC_EGREP_HEADER on 'header' for the string 'field' +dnl If found, set 'symbol' to be defined. Cache the result. +dnl TODO: This is not foolproof, better to compile and read from there +AC_DEFUN(OSSH_CHECK_HEADER_FOR_FIELD, [ +# look for field '$1' in header '$2' + dnl This strips characters illegal to m4 from the header filename + ossh_safe=`echo "$2" | sed 'y%./+-%__p_%'` + dnl + ossh_varname="ossh_cv_$ossh_safe""_has_"$1 + AC_MSG_CHECKING(for $1 field in $2) + AC_CACHE_VAL($ossh_varname, [ + AC_EGREP_HEADER($1, $2, [ dnl + eval "$ossh_varname=yes" dnl + ], [ dnl + eval "$ossh_varname=no" dnl + ]) dnl + ]) + ossh_result=`eval 'echo $'"$ossh_varname"` + if test -n "`echo $ossh_varname`"; then + AC_MSG_RESULT($ossh_result) + if test "x$ossh_result" = "xyes"; then + AC_DEFINE($3, 1, [Define if you have $1 in $2]) + fi + else + AC_MSG_RESULT(no) + fi +]) + +dnl Check for socklen_t: historically on BSD it is an int, and in +dnl POSIX 1g it is a type of its own, but some platforms use different +dnl types for the argument to getsockopt, getpeername, etc. So we +dnl have to test to find something that will work. +AC_DEFUN([TYPE_SOCKLEN_T], +[ + AC_CHECK_TYPE([socklen_t], ,[ + AC_MSG_CHECKING([for socklen_t equivalent]) + AC_CACHE_VAL([curl_cv_socklen_t_equiv], + [ + # Systems have either "struct sockaddr *" or + # "void *" as the second argument to getpeername + curl_cv_socklen_t_equiv= + for arg2 in "struct sockaddr" void; do + for t in int size_t unsigned long "unsigned long"; do + AC_TRY_COMPILE([ + #include + #include + + int getpeername (int, $arg2 *, $t *); + ],[ + $t len; + getpeername(0,0,&len); + ],[ + curl_cv_socklen_t_equiv="$t" + break + ]) + done + done + + if test "x$curl_cv_socklen_t_equiv" = x; then + AC_MSG_ERROR([Cannot find a type to use in place of socklen_t]) + fi + ]) + AC_MSG_RESULT($curl_cv_socklen_t_equiv) + AC_DEFINE_UNQUOTED(socklen_t, $curl_cv_socklen_t_equiv, + [type to use in place of socklen_t if not defined])], + [#include +#include ]) +]) + -- cgit v1.2.3 From 4bf7e1d00b1dcd3a6b3239f77465c019e61c6715 Mon Sep 17 00:00:00 2001 From: Sebastian Andrzej Siewior Date: Sat, 5 Sep 2020 17:50:03 +0200 Subject: Quote the definition of OSSH_CHECK_HEADER_FOR_FIELD autoreconf complains about underquoted definition of OSSH_CHECK_HEADER_FOR_FIELD after aclocal.m4 has been and now is beeing recreated. Quote OSSH_CHECK_HEADER_FOR_FIELD as suggested. Signed-off-by: Sebastian Andrzej Siewior --- m4/openssh.m4 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/m4/openssh.m4 b/m4/openssh.m4 index b70856e43..6a49f10fa 100644 --- a/m4/openssh.m4 +++ b/m4/openssh.m4 @@ -131,7 +131,7 @@ dnl OSSH_CHECK_HEADER_FOR_FIELD(field, header, symbol) dnl Does AC_EGREP_HEADER on 'header' for the string 'field' dnl If found, set 'symbol' to be defined. Cache the result. dnl TODO: This is not foolproof, better to compile and read from there -AC_DEFUN(OSSH_CHECK_HEADER_FOR_FIELD, [ +AC_DEFUN([OSSH_CHECK_HEADER_FOR_FIELD], [ # look for field '$1' in header '$2' dnl This strips characters illegal to m4 from the header filename ossh_safe=`echo "$2" | sed 'y%./+-%__p_%'` -- cgit v1.2.3 From 600c1c27abd496372bd0cf83d21a1c119dfdf9a5 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Sun, 6 Sep 2020 21:56:36 +1000 Subject: Add aclocal.m4 and config.h.in~ to .gitignore. aclocal.m4 is now generated by autoreconf. --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 043674f43..5e4ae5a60 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,11 @@ Makefile buildpkg.sh config.h config.h.in +config.h.in~ config.log config.status configure +aclocal.m4 openbsd-compat/Makefile openbsd-compat/regress/Makefile openssh.xml -- cgit v1.2.3 From f2950baf0bafe6aa20dfe2e8d1ca4b23528df617 Mon Sep 17 00:00:00 2001 From: Darren Tucker Date: Fri, 11 Sep 2020 14:45:23 +1000 Subject: New config-build-time dependency on automake. --- INSTALL | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/INSTALL b/INSTALL index 39d3f818d..b22721d34 100644 --- a/INSTALL +++ b/INSTALL @@ -96,11 +96,12 @@ http://nlnetlabs.nl/projects/ldns/ Autoconf: If you modify configure.ac or configure doesn't exist (eg if you checked -the code out of git yourself) then you will need autoconf-2.69 to rebuild -the automatically generated files by running "autoreconf". Earlier -versions may also work but this is not guaranteed. +the code out of git yourself) then you will need autoconf-2.69 and +automake-1.16.1 to rebuild the automatically generated files by running +"autoreconf". Earlier versions may also work but this is not guaranteed. http://www.gnu.org/software/autoconf/ +http://www.gnu.org/software/automake/ Basic Security Module (BSM): -- cgit v1.2.3 From c3c786c3a0973331ee0922b2c51832a3b8d7f20f Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Wed, 9 Sep 2020 21:57:27 +0000 Subject: upstream: For the hostkey confirmation message: > Are you sure you want to continue connecting (yes/no/[fingerprint])? compare the fingerprint case sensitively; spotted Patrik Lundin ok dtucker OpenBSD-Commit-ID: 73097afee1b3a5929324e345ba4a4a42347409f2 --- sshconnect.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sshconnect.c b/sshconnect.c index 63a97d039..9ec0618a9 100644 --- a/sshconnect.c +++ b/sshconnect.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect.c,v 1.331 2020/08/11 09:49:57 djm Exp $ */ +/* $OpenBSD: sshconnect.c,v 1.332 2020/09/09 21:57:27 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -597,7 +597,7 @@ confirm(const char *prompt, const char *fingerprint) if (p[0] == '\0' || strcasecmp(p, "no") == 0) ret = 0; else if (strcasecmp(p, "yes") == 0 || (fingerprint != NULL && - strcasecmp(p, fingerprint) == 0)) + strcmp(p, fingerprint) == 0)) ret = 1; free(cp); if (ret != -1) -- cgit v1.2.3 From d6f507f37e6c75a899db0ef8224e72797c5563b6 Mon Sep 17 00:00:00 2001 From: "dtucker@openbsd.org" Date: Wed, 16 Sep 2020 03:07:31 +0000 Subject: upstream: Remove unused buf, last user was removed when switching to the sshbuf API. Patch from Sebastian Andrzej Siewior. OpenBSD-Commit-ID: 250fa17f0cec01039cc4abd95917d9746e24c889 --- clientloop.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/clientloop.c b/clientloop.c index c82b084da..60b46d161 100644 --- a/clientloop.c +++ b/clientloop.c @@ -1,4 +1,4 @@ -/* $OpenBSD: clientloop.c,v 1.345 2020/07/03 05:09:06 dtucker Exp $ */ +/* $OpenBSD: clientloop.c,v 1.346 2020/09/16 03:07:31 dtucker Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1238,7 +1238,6 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, int r, max_fd = 0, max_fd2 = 0, len; u_int64_t ibytes, obytes; u_int nalloc = 0; - char buf[100]; debug("Entering interactive session."); @@ -1467,7 +1466,6 @@ client_loop(struct ssh *ssh, int have_pty, int escape_char_arg, } /* Clear and free any buffers. */ - explicit_bzero(buf, sizeof(buf)); sshbuf_free(stderr_buffer); /* Report bytes transferred, and transfer rates. */ -- cgit v1.2.3 From 9d3d36bdb10b66abd1af42e8655502487b6ba1fa Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 18 Sep 2020 14:50:38 +1000 Subject: focus improvement for gnome-ssh-askpass[23] When serving a SSH_ASKPASS_PROMPT=none information dialog, ensure then doesn't immediately close the dialog. Instead, require an explicit to reach the close button, or . --- contrib/gnome-ssh-askpass2.c | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/contrib/gnome-ssh-askpass2.c b/contrib/gnome-ssh-askpass2.c index bc83a2d67..7656a776b 100644 --- a/contrib/gnome-ssh-askpass2.c +++ b/contrib/gnome-ssh-askpass2.c @@ -59,6 +59,7 @@ #include #include #include +#include static void report_failed_grab (GtkWidget *parent_window, const char *what) @@ -85,6 +86,25 @@ ok_dialog(GtkWidget *entry, gpointer dialog) gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); } +static gboolean +check_none(GtkWidget *widget, GdkEventKey *event, gpointer dialog) +{ + switch (event->keyval) { + case GDK_KEY_Escape: + /* esc -> close dialog */ + gtk_dialog_response(GTK_DIALOG(dialog), GTK_RESPONSE_CLOSE); + return TRUE; + case GDK_KEY_Tab: + /* tab -> focus close button */ + gtk_widget_grab_focus(gtk_dialog_get_widget_for_response( + dialog, GTK_RESPONSE_CLOSE)); + return TRUE; + default: + /* eat all other key events */ + return TRUE; + } +} + static int passphrase_dialog(char *message, int prompt_type) { @@ -127,17 +147,29 @@ passphrase_dialog(char *message, int prompt_type) gtk_dialog_set_default_response(GTK_DIALOG(dialog), default_response); gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); - if (prompt_type == PROMPT_ENTRY) { + if (prompt_type == PROMPT_ENTRY || prompt_type == PROMPT_NONE) { entry = gtk_entry_new(); gtk_box_pack_start( GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), entry, FALSE, FALSE, 0); gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); gtk_widget_grab_focus(entry); - gtk_widget_show(entry); - /* Make close dialog */ - g_signal_connect(G_OBJECT(entry), "activate", - G_CALLBACK(ok_dialog), dialog); + if (prompt_type == PROMPT_ENTRY) { + gtk_widget_show(entry); + /* Make close dialog */ + g_signal_connect(G_OBJECT(entry), "activate", + G_CALLBACK(ok_dialog), dialog); + } else { + /* + * Ensure the 'close' button is not focused by default + * but is still reachable via tab. This is a bit of a + * hack - it uses a hidden entry that responds to a + * couple of keypress events (escape and tab only). + */ + gtk_widget_realize(entry); + g_signal_connect(G_OBJECT(entry), "key_press_event", + G_CALLBACK(check_none), dialog); + } } /* Grab focus */ -- cgit v1.2.3 From f93b187ab900c7d12875952cc63350fe4de8a0a8 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 18 Sep 2020 14:55:48 +1000 Subject: control over the colours in gnome-ssh-askpass[23] Optionally set the textarea colours via $GNOME_SSH_ASKPASS_FG_COLOR and $GNOME_SSH_ASKPASS_BG_COLOR. These accept the usual three or six digit hex colours. --- contrib/gnome-ssh-askpass2.c | 57 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/contrib/gnome-ssh-askpass2.c b/contrib/gnome-ssh-askpass2.c index 7656a776b..f7912727c 100644 --- a/contrib/gnome-ssh-askpass2.c +++ b/contrib/gnome-ssh-askpass2.c @@ -56,6 +56,7 @@ #include #include #include + #include #include #include @@ -105,6 +106,48 @@ check_none(GtkWidget *widget, GdkEventKey *event, gpointer dialog) } } +static int +parse_env_hex_color(const char *env, GdkColor *c) +{ + const char *s; + unsigned long ul; + char *ep; + size_t n; + + if ((s = getenv(env)) == NULL) + return 0; + + memset(c, 0, sizeof(*c)); + + /* Permit hex rgb or rrggbb optionally prefixed by '#' or '0x' */ + if (*s == '#') + s++; + else if (strncmp(s, "0x", 2) == 0) + s += 2; + n = strlen(s); + if (n != 3 && n != 6) + goto bad; + ul = strtoul(s, &ep, 16); + if (*ep != '\0' || ul > 0xffffff) { + bad: + fprintf(stderr, "Invalid $%s - invalid hex color code\n", env); + return 0; + } + /* Valid hex sequence; expand into a GdkColor */ + if (n == 3) { + /* 4-bit RGB */ + c->red = ((ul >> 8) & 0xf) << 12; + c->green = ((ul >> 4) & 0xf) << 12; + c->blue = (ul & 0xf) << 12; + } else { + /* 8-bit RGB */ + c->red = ((ul >> 16) & 0xff) << 8; + c->green = ((ul >> 8) & 0xff) << 8; + c->blue = (ul & 0xff) << 8; + } + return 1; +} + static int passphrase_dialog(char *message, int prompt_type) { @@ -114,11 +157,16 @@ passphrase_dialog(char *message, int prompt_type) int buttons, default_response; GtkWidget *parent_window, *dialog, *entry; GdkGrabStatus status; + GdkColor fg, bg; + int fg_set = 0, bg_set = 0; grab_server = (getenv("GNOME_SSH_ASKPASS_GRAB_SERVER") != NULL); grab_pointer = (getenv("GNOME_SSH_ASKPASS_GRAB_POINTER") != NULL); grab_tries = 0; + fg_set = parse_env_hex_color("GNOME_SSH_ASKPASS_FG_COLOR", &fg); + bg_set = parse_env_hex_color("GNOME_SSH_ASKPASS_BG_COLOR", &bg); + /* Create an invisible parent window so that GtkDialog doesn't * complain. */ parent_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); @@ -147,8 +195,17 @@ passphrase_dialog(char *message, int prompt_type) gtk_dialog_set_default_response(GTK_DIALOG(dialog), default_response); gtk_window_set_keep_above(GTK_WINDOW(dialog), TRUE); + if (fg_set) + gtk_widget_modify_fg(dialog, GTK_STATE_NORMAL, &fg); + if (bg_set) + gtk_widget_modify_bg(dialog, GTK_STATE_NORMAL, &bg); + if (prompt_type == PROMPT_ENTRY || prompt_type == PROMPT_NONE) { entry = gtk_entry_new(); + if (fg_set) + gtk_widget_modify_fg(entry, GTK_STATE_NORMAL, &fg); + if (bg_set) + gtk_widget_modify_bg(entry, GTK_STATE_NORMAL, &bg); gtk_box_pack_start( GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), entry, FALSE, FALSE, 0); -- cgit v1.2.3 From b3855ff053f5078ec3d3c653cdaedefaa5fc362d Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 18 Sep 2020 05:23:03 +0000 Subject: upstream: tweak the client hostkey preference ordering algorithm to prefer the default ordering if the user has a key that matches the best-preference default algorithm. feedback and ok markus@ OpenBSD-Commit-ID: a92dd7d7520ddd95c0a16786a7519e6d0167d35f --- sshconnect2.c | 41 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 3 deletions(-) diff --git a/sshconnect2.c b/sshconnect2.c index 347e348c6..f64aae66a 100644 --- a/sshconnect2.c +++ b/sshconnect2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sshconnect2.c,v 1.325 2020/08/27 01:06:18 djm Exp $ */ +/* $OpenBSD: sshconnect2.c,v 1.326 2020/09/18 05:23:03 djm Exp $ */ /* * Copyright (c) 2000 Markus Friedl. All rights reserved. * Copyright (c) 2008 Damien Miller. All rights reserved. @@ -102,12 +102,25 @@ verify_host_key_callback(struct sshkey *hostkey, struct ssh *ssh) return 0; } +/* Returns the first item from a comma-separated algorithm list */ +static char * +first_alg(const char *algs) +{ + char *ret, *cp; + + ret = xstrdup(algs); + if ((cp = strchr(ret, ',')) != NULL) + *cp = '\0'; + return ret; +} + static char * order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port) { - char *oavail, *avail, *first, *last, *alg, *hostname, *ret; + char *oavail = NULL, *avail = NULL, *first = NULL, *last = NULL; + char *alg = NULL, *hostname = NULL, *ret = NULL, *best = NULL; size_t maxlen; - struct hostkeys *hostkeys; + struct hostkeys *hostkeys = NULL; int ktype; u_int i; @@ -119,6 +132,26 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port) for (i = 0; i < options.num_system_hostfiles; i++) load_hostkeys(hostkeys, hostname, options.system_hostfiles[i]); + /* + * If a plain public key exists that matches the type of the best + * preference HostkeyAlgorithms, then use the whole list as is. + * Note that we ignore whether the best preference algorithm is a + * certificate type, as sshconnect.c will downgrade certs to + * plain keys if necessary. + */ + best = first_alg(options.hostkeyalgorithms); + if (lookup_key_in_hostkeys_by_type(hostkeys, + sshkey_type_plain(sshkey_type_from_name(best)), NULL)) { + debug3("%s: have matching best-preference key type %s, " + "using HostkeyAlgorithms verbatim", __func__, best); + ret = xstrdup(options.hostkeyalgorithms); + goto out; + } + + /* + * Otherwise, prefer the host key algorithms that match known keys + * while keeping the ordering of HostkeyAlgorithms as much as possible. + */ oavail = avail = xstrdup(options.hostkeyalgorithms); maxlen = strlen(avail) + 1; first = xmalloc(maxlen); @@ -159,6 +192,8 @@ order_hostkeyalgs(char *host, struct sockaddr *hostaddr, u_short port) if (*first != '\0') debug3("%s: prefer hostkeyalgs: %s", __func__, first); + out: + free(best); free(first); free(last); free(hostname); -- cgit v1.2.3 From dc098405b2939146e17567a25b08fc6122893cdf Mon Sep 17 00:00:00 2001 From: pedro martelletto Date: Fri, 18 Sep 2020 08:57:29 +0200 Subject: configure.ac: add missing includes when testing, make sure to include the relevant header files that declare the types of the functions used by the test: - stdio.h for printf(); - stdlib.h for exit(); - string.h for strcmp(); - unistd.h for unlink(), _exit(), fork(), getppid(), sleep(). --- configure.ac | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/configure.ac b/configure.ac index 28947a660..7005a503e 100644 --- a/configure.ac +++ b/configure.ac @@ -653,7 +653,9 @@ case "$host" in *-*-darwin*) use_pie=auto AC_MSG_CHECKING([if we have working getaddrinfo]) - AC_RUN_IFELSE([AC_LANG_SOURCE([[ #include + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#include +#include main() { if (NSVersionOfRunTimeLibrary("System") >= (60 << 16)) exit(0); else @@ -1241,7 +1243,7 @@ EOD esac AC_MSG_CHECKING([compiler and flags for sanity]) -AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ exit(0); ]])], +AC_RUN_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ exit(0); ]])], [ AC_MSG_RESULT([yes]) ], [ AC_MSG_RESULT([no]) @@ -1265,6 +1267,7 @@ AC_CHECK_FUNCS([dirname], [AC_CHECK_HEADERS([libgen.h])] , [ [AC_LANG_SOURCE([[ #include #include +#include int main(int argc, char **argv) { char *s, buf[32]; @@ -1516,7 +1519,9 @@ AC_MSG_CHECKING([whether struct dirent allocates space for d_name]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include -#include ]], +#include +#include + ]], [[ struct dirent d; exit(sizeof(d.d_name)<=sizeof(char)); @@ -1630,7 +1635,10 @@ AC_ARG_WITH([libedit], ) AC_MSG_CHECKING([if libedit version is compatible]) AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[ #include ]], + [AC_LANG_PROGRAM([[ +#include +#include + ]], [[ int i = H_SETSIZE; el_init("", NULL, NULL, NULL); @@ -2120,7 +2128,11 @@ AC_CHECK_FUNCS([setresgid], [ AC_MSG_CHECKING([for working fflush(NULL)]) AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[#include ]], [[fflush(NULL); exit(0);]])], + [AC_LANG_PROGRAM([[ +#include +#include + ]], + [[fflush(NULL); exit(0);]])], AC_MSG_RESULT([yes]), [AC_MSG_RESULT([no]) AC_DEFINE([FFLUSH_NULL_BUG], [1], @@ -2156,7 +2168,10 @@ AC_CHECK_FUNC([getpagesize], if test "x$ac_cv_func_snprintf" = "xyes" ; then AC_MSG_CHECKING([whether snprintf correctly terminates long strings]) AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[ #include ]], + [AC_LANG_PROGRAM([[ +#include +#include + ]], [[ char b[5]; snprintf(b,5,"123456789"); @@ -2179,6 +2194,8 @@ if test "x$ac_cv_func_snprintf" = "xyes" ; then [AC_LANG_PROGRAM([[ #include #include +#include +#include ]], [[ size_t a = 1, b = 2; @@ -2271,6 +2288,7 @@ AC_MSG_CHECKING([for (overly) strict mkstemp]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include ]], [[ char template[]="conftest.mkstemp-test"; if (mkstemp(template) == -1) @@ -2298,6 +2316,8 @@ if test ! -z "$check_for_openpty_ctty_bug"; then AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include +#include #include #include #include @@ -2344,6 +2364,7 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \ AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include #include #include #include @@ -2412,6 +2433,7 @@ if test "x$ac_cv_func_getaddrinfo" = "xyes" && \ AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include #include #include #include @@ -2474,7 +2496,10 @@ fi if test "x$check_for_conflicting_getspnam" = "x1"; then AC_MSG_CHECKING([for conflicting getspnam in shadow.h]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include ]], + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ +#include +#include + ]], [[ exit(0); ]])], [ AC_MSG_RESULT([no]) @@ -2504,6 +2529,7 @@ if test "x$ac_cv_func_strnvis" = "xyes"; then #include #include #include +#include #include static void sighandler(int sig) { _exit(1); } ]], [[ @@ -2532,6 +2558,7 @@ AC_RUN_IFELSE( #include #include #include +#include static void sighandler(int sig) { } ]], [[ int r; @@ -2688,6 +2715,7 @@ if test "x$openssl" = "xyes" ; then AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include + #include #include #include #include @@ -2749,6 +2777,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([whether OpenSSL's headers match the library]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include #include @@ -2888,6 +2917,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([whether OpenSSL has crippled AES support]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include ]], [[ @@ -2907,6 +2937,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([whether OpenSSL has AES CTR via EVP]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include ]], [[ @@ -2928,6 +2959,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([whether OpenSSL has AES GCM via EVP]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include ]], [[ @@ -2955,6 +2987,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([if EVP_DigestUpdate returns an int]) AC_LINK_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include ]], [[ @@ -3041,6 +3074,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([if OpenSSL's NID_secp521r1 is functional]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include #include @@ -3223,6 +3257,7 @@ if test "x$openssl" = "xyes" ; then AC_MSG_CHECKING([whether OpenSSL's PRNG is internally seeded]) AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ + #include #include #include ]], [[ @@ -3654,6 +3689,7 @@ if test -z "$have_llong_max" && test -z "$have_long_long_max"; then AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include /* Why is this so damn hard? */ #ifdef __GNUC__ # undef __GNUC__ @@ -4169,6 +4205,7 @@ dnl test snprintf (broken on SCO w/gcc) AC_RUN_IFELSE( [AC_LANG_SOURCE([[ #include +#include #include #ifdef HAVE_SNPRINTF main() @@ -4272,6 +4309,7 @@ AC_CACHE_CHECK([for msg_accrights field in struct msghdr], #include #include #include +#include ]], [[ #ifdef msg_accrights #error "msg_accrights is a macro" @@ -4333,6 +4371,7 @@ AC_CACHE_CHECK([for msg_control field in struct msghdr], #include #include #include +#include ]], [[ #ifdef msg_control #error "msg_control is a macro" @@ -4353,7 +4392,7 @@ if test "x$ac_cv_have_control_in_msghdr" = "xyes" ; then fi AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ extern char *__progname; printf("%s", __progname); ]])], [ ac_cv_libc_defines___progname="yes" ], [ ac_cv_libc_defines___progname="no" @@ -4425,7 +4464,7 @@ if test "x$ac_cv_have_getopt_optreset" = "xyes" ; then fi AC_CACHE_CHECK([if libc defines sys_errlist], ac_cv_libc_defines_sys_errlist, [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ extern const char *const sys_errlist[]; printf("%s", sys_errlist[0]);]])], [ ac_cv_libc_defines_sys_errlist="yes" ], [ ac_cv_libc_defines_sys_errlist="no" @@ -4438,7 +4477,7 @@ fi AC_CACHE_CHECK([if libc defines sys_nerr], ac_cv_libc_defines_sys_nerr, [ - AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include ]], [[ extern int sys_nerr; printf("%i", sys_nerr);]])], [ ac_cv_libc_defines_sys_nerr="yes" ], [ ac_cv_libc_defines_sys_nerr="no" @@ -4747,6 +4786,7 @@ AC_ARG_WITH([maildir], AC_RUN_IFELSE( [AC_LANG_PROGRAM([[ #include +#include #include #ifdef HAVE_PATHS_H #include @@ -4991,6 +5031,7 @@ otherwise scp will not work.]) [AC_LANG_PROGRAM([[ /* find out what STDPATH is */ #include +#include #ifdef HAVE_PATHS_H # include #endif -- cgit v1.2.3 From 52a03e9fca2d74eef953ddd4709250f365ca3975 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Fri, 18 Sep 2020 08:16:38 +0000 Subject: upstream: handle multiple messages in a single read() PR#183 by Dennis Kaarsemaker; feedback and ok markus@ OpenBSD-Commit-ID: 8570bb4d02d00cf70b98590716ea6a7d1cce68d1 --- ssh-agent.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/ssh-agent.c b/ssh-agent.c index d24a63089..e1fd1f3f6 100644 --- a/ssh-agent.c +++ b/ssh-agent.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh-agent.c,v 1.263 2020/08/27 01:06:18 djm Exp $ */ +/* $OpenBSD: ssh-agent.c,v 1.264 2020/09/18 08:16:38 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -852,8 +852,10 @@ send: } #endif /* ENABLE_PKCS11 */ -/* dispatch incoming messages */ - +/* + * dispatch incoming message. + * returns 1 on success, 0 for incomplete messages or -1 on error. + */ static int process_message(u_int socknum) { @@ -907,7 +909,7 @@ process_message(u_int socknum) /* send a fail message for all other request types */ send_status(e, 0); } - return 0; + return 1; } switch (type) { @@ -951,7 +953,7 @@ process_message(u_int socknum) send_status(e, 0); break; } - return 0; + return 1; } static void @@ -1042,7 +1044,12 @@ handle_conn_read(u_int socknum) if ((r = sshbuf_put(sockets[socknum].input, buf, len)) != 0) fatal("%s: buffer error: %s", __func__, ssh_err(r)); explicit_bzero(buf, sizeof(buf)); - process_message(socknum); + for (;;) { + if ((r = process_message(socknum)) == -1) + return -1; + else if (r == 0) + break; + } return 0; } -- cgit v1.2.3 From acfe2ac5fe033e227ad3a56624fbbe4af8b5da04 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Fri, 18 Sep 2020 22:02:53 +1000 Subject: libfido2 1.5.0 is recommended --- INSTALL | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/INSTALL b/INSTALL index b22721d34..ee621da43 100644 --- a/INSTALL +++ b/INSTALL @@ -120,7 +120,8 @@ the dependency (.depend) file using "make depend", which requires the libfido2: libfido2 allows the use of hardware security keys over USB. libfido2 -in turn depends on libcbor. libfido2 >= 1.4.0 is needed. +in turn depends on libcbor. libfido2 >= 1.5.0 is strongly recommended. +Limited functionality is possible with earlier libfido2 versions. https://github.com/Yubico/libfido2 https://github.com/pjk/libcbor -- cgit v1.2.3 From 107eb3eeafcd390e1fa7cc7672a05e994d14013e Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Sun, 20 Sep 2020 05:47:25 +0000 Subject: upstream: cap channel input buffer size at 16MB; avoids high memory use when peer advertises a large window but is slow to consume the data we send (e.g. because of a slow network) reported by Pierre-Yves David fix with & ok markus@ OpenBSD-Commit-ID: 1452771f5e5e768876d3bfe2544e3866d6ade216 --- channels.c | 5 ++++- channels.h | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/channels.c b/channels.c index 71c94f6cc..e4917f3c9 100644 --- a/channels.c +++ b/channels.c @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.c,v 1.401 2020/07/03 07:25:18 djm Exp $ */ +/* $OpenBSD: channels.c,v 1.402 2020/09/20 05:47:25 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -354,6 +354,7 @@ channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd, struct ssh_channels *sc = ssh->chanctxt; u_int i, found; Channel *c; + int r; /* Try to find a free slot where to put the new channel. */ for (i = 0; i < sc->channels_alloc; i++) { @@ -383,6 +384,8 @@ channel_new(struct ssh *ssh, char *ctype, int type, int rfd, int wfd, int efd, (c->output = sshbuf_new()) == NULL || (c->extended = sshbuf_new()) == NULL) fatal("%s: sshbuf_new failed", __func__); + if ((r = sshbuf_set_max_size(c->input, CHAN_INPUT_MAX)) != 0) + fatal("%s: sshbuf_set_max_size: %s", __func__, ssh_err(r)); c->ostate = CHAN_OUTPUT_OPEN; c->istate = CHAN_INPUT_OPEN; channel_register_fds(ssh, c, rfd, wfd, efd, extusage, nonblock, 0); diff --git a/channels.h b/channels.h index ee818880e..74e9b3f87 100644 --- a/channels.h +++ b/channels.h @@ -1,4 +1,4 @@ -/* $OpenBSD: channels.h,v 1.134 2020/07/05 23:59:45 djm Exp $ */ +/* $OpenBSD: channels.h,v 1.135 2020/09/20 05:47:25 djm Exp $ */ /* * Author: Tatu Ylonen @@ -223,6 +223,9 @@ struct Channel { /* Read buffer size */ #define CHAN_RBUF (16*1024) +/* Maximum channel input buffer size */ +#define CHAN_INPUT_MAX (16*1024*1024) + /* Hard limit on number of channels */ #define CHANNELS_MAX_CHANNELS (16*1024) -- cgit v1.2.3 From 53a33a0d745179c02108589e1722457ca8ae4372 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 20 Sep 2020 15:57:09 +1000 Subject: .depend --- .depend | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.depend b/.depend index 67983e0cf..f05bd9d74 100644 --- a/.depend +++ b/.depend @@ -60,7 +60,7 @@ gss-serv-krb5.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd 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 misc.h ssherr.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 misc.h pathnames.h ssherr.h digest.h hmac.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 match.h kex.o: misc.h monitor.h ssherr.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 @@ -125,7 +125,7 @@ sftp-server.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-c 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 pathnames.h misc.h utf8.h sftp.h ssherr.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 sntrup4591761.o: includes.h config.h defines.h platform.h openbsd-compat/openbsd-compat.h openbsd-compat/base64.h openbsd-compat/sigact.h openbsd-compat/readpassphrase.h openbsd-compat/vis.h openbsd-compat/getrrsetbyname.h openbsd-compat/sha1.h openbsd-compat/sha2.h openbsd-compat/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 -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 sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.h digest.h ssh-sk.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 sshkey.h sshbuf.h authfd.h authfile.h pathnames.h misc.h ssherr.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 misc.h digest.h ssherr.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 -- cgit v1.2.3 From d14fe25e6c3b89f8af17e2894046164ac3b45688 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Sun, 20 Sep 2020 23:31:46 +0000 Subject: upstream: close stdout/stderr after "ssh -f ..." forking bz#3137, ok markus OpenBSD-Commit-ID: e2d83cc4dea1665651a7aa924ad1ed6bcaaab3e2 --- ssh.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/ssh.c b/ssh.c index 9c6a6278b..6202e3c09 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.534 2020/07/31 04:19:37 dtucker Exp $ */ +/* $OpenBSD: ssh.c,v 1.535 2020/09/20 23:31:46 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1745,12 +1745,25 @@ control_persist_detach(void) static void fork_postauth(void) { + int devnull, keep_stderr; + if (need_controlpersist_detach) control_persist_detach(); debug("forking to background"); fork_after_authentication_flag = 0; if (daemon(1, 1) == -1) fatal("daemon() failed: %.200s", strerror(errno)); + if ((devnull = open(_PATH_DEVNULL, O_WRONLY)) == -1) + error("%s: open %s: %s", __func__, + _PATH_DEVNULL, strerror(errno)); + else { + keep_stderr = log_is_on_stderr() && debug_flag; + if (dup2(devnull, STDOUT_FILENO) == -1 || + (!keep_stderr && dup2(devnull, STDOUT_FILENO) == -1)) + fatal("%s: dup2() stdio failed", __func__); + if (devnull > STDERR_FILENO) + close(devnull); + } } static void @@ -2149,13 +2162,15 @@ ssh_session2(struct ssh *ssh, struct passwd *pw) * as it may want to write to stdout. */ if (!need_controlpersist_detach) { - if ((devnull = open(_PATH_DEVNULL, O_WRONLY)) == -1) + if ((devnull = open(_PATH_DEVNULL, O_WRONLY)) == -1) { error("%s: open %s: %s", __func__, _PATH_DEVNULL, strerror(errno)); - if (dup2(devnull, STDOUT_FILENO) == -1) - fatal("%s: dup2() stdout failed", __func__); - if (devnull > STDERR_FILENO) - close(devnull); + } else { + if (dup2(devnull, STDOUT_FILENO) == -1) + fatal("%s: dup2() stdout failed", __func__); + if (devnull > STDERR_FILENO) + close(devnull); + } } /* -- cgit v1.2.3 From 0a4a5571ada76b1b012bec9cf6ad1203fc19ec8d Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Mon, 21 Sep 2020 07:29:09 +0000 Subject: upstream: close stdin when forking after authentication too; ok markus OpenBSD-Commit-ID: 43db17e4abc3e6b4a7b033aa8cdab326a7cb6c24 --- ssh.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ssh.c b/ssh.c index 6202e3c09..f34ca0d71 100644 --- a/ssh.c +++ b/ssh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ssh.c,v 1.535 2020/09/20 23:31:46 djm Exp $ */ +/* $OpenBSD: ssh.c,v 1.536 2020/09/21 07:29:09 djm Exp $ */ /* * Author: Tatu Ylonen * Copyright (c) 1995 Tatu Ylonen , Espoo, Finland @@ -1758,7 +1758,8 @@ fork_postauth(void) _PATH_DEVNULL, strerror(errno)); else { keep_stderr = log_is_on_stderr() && debug_flag; - if (dup2(devnull, STDOUT_FILENO) == -1 || + if (dup2(devnull, STDIN_FILENO) == -1 || + dup2(devnull, STDOUT_FILENO) == -1 || (!keep_stderr && dup2(devnull, STDOUT_FILENO) == -1)) fatal("%s: dup2() stdio failed", __func__); if (devnull > STDERR_FILENO) -- cgit v1.2.3 From 9bb8a303ce05ff13fb421de991b495930be103c3 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Tue, 22 Sep 2020 10:07:43 +1000 Subject: sync with upstream ssh-copy-id rev f0da1a1b7 --- contrib/ssh-copy-id | 158 +++++++++++++++++++++++++------------------------- contrib/ssh-copy-id.1 | 2 +- 2 files changed, 81 insertions(+), 79 deletions(-) diff --git a/contrib/ssh-copy-id b/contrib/ssh-copy-id index b83b83619..392f64f94 100644 --- a/contrib/ssh-copy-id +++ b/contrib/ssh-copy-id @@ -1,6 +1,7 @@ #!/bin/sh -# Copyright (c) 1999-2016 Philip Hands +# Copyright (c) 1999-2020 Philip Hands +# 2017 Sebastien Boyron # 2013 Martin Kletzander # 2010 Adeodato =?iso-8859-1?Q?Sim=F3?= # 2010 Eric Moret @@ -33,13 +34,15 @@ # Shell script to install your public key(s) on a remote machine # See the ssh-copy-id(1) man page for details +# shellcheck shell=dash + # check that we have something mildly sane as our shell, or try to find something better if false ^ printf "%s: WARNING: ancient shell, hunting for a more modern one... " "$0" then SANE_SH=${SANE_SH:-/usr/bin/ksh} if printf 'true ^ false\n' | "$SANE_SH" then - printf "'%s' seems viable.\n" "$SANE_SH" + printf "'%s' seems viable.\\n" "$SANE_SH" exec "$SANE_SH" "$0" "$@" else cat <<-EOF @@ -51,16 +54,16 @@ then a bug describing your setup, and the shell you used to make it work. EOF - printf "%s: ERROR: Less dimwitted shell required.\n" "$0" + printf '%s: ERROR: Less dimwitted shell required.\n' "$0" exit 1 fi fi -most_recent_id="$(cd "$HOME" ; ls -t .ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)" -DEFAULT_PUB_ID_FILE="${most_recent_id:+$HOME/}$most_recent_id" +# shellcheck disable=SC2010 +DEFAULT_PUB_ID_FILE=$(ls -t "${HOME}"/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1) usage () { - printf 'Usage: %s [-h|-?|-f|-n] [-i [identity_file]] [-p port] [[-o ] ...] [user@]hostname\n' "$0" >&2 + printf 'Usage: %s [-h|-?|-f|-n] [-i [identity_file]] [-p port] [-F alternative ssh_config file] [[-o ] ...] [user@]hostname\n' "$0" >&2 printf '\t-f: force mode -- copy keys without trying to check if they are already installed\n' >&2 printf '\t-n: dry run -- no keys are actually copied\n' >&2 printf '\t-h|-?: print this help\n' >&2 @@ -69,18 +72,18 @@ usage () { # escape any single quotes in an argument quote() { - printf "%s\n" "$1" | sed -e "s/'/'\\\\''/g" + printf '%s\n' "$1" | sed -e "s/'/'\\\\''/g" } use_id_file() { local L_ID_FILE="$1" if [ -z "$L_ID_FILE" ] ; then - printf "%s: ERROR: no ID file found\n" "$0" + printf '%s: ERROR: no ID file found\n' "$0" exit 1 fi - if expr "$L_ID_FILE" : ".*\.pub$" >/dev/null ; then + if expr "$L_ID_FILE" : '.*\.pub$' >/dev/null ; then PUB_ID_FILE="$L_ID_FILE" else PUB_ID_FILE="$L_ID_FILE.pub" @@ -93,7 +96,7 @@ use_id_file() { ErrMSG=$( { : < "$f" ; } 2>&1 ) || { local L_PRIVMSG="" [ "$f" = "$PRIV_ID_FILE" ] && L_PRIVMSG=" (to install the contents of '$PUB_ID_FILE' anyway, look at the -f option)" - printf "\n%s: ERROR: failed to open ID file '%s': %s\n" "$0" "$f" "$(printf "%s\n%s\n" "$ErrMSG" "$L_PRIVMSG" | sed -e 's/.*: *//')" + printf "\\n%s: ERROR: failed to open ID file '%s': %s\\n" "$0" "$f" "$(printf '%s\n%s\n' "$ErrMSG" "$L_PRIVMSG" | sed -e 's/.*: *//')" exit 1 } done @@ -105,80 +108,37 @@ if [ -n "$SSH_AUTH_SOCK" ] && ssh-add -L >/dev/null 2>&1 ; then GET_ID="ssh-add -L" fi -while test "$#" -gt 0 +while getopts "i:o:p:F:fnh?" OPT do - [ "${SEEN_OPT_I}" ] && expr "$1" : "[-]i" >/dev/null && { - printf "\n%s: ERROR: -i option must not be specified more than once\n\n" "$0" - usage - } - - OPT= OPTARG= - # implement something like getopt to avoid Solaris pain - case "$1" in - -i?*|-o?*|-p?*) - OPT="$(printf -- "$1"|cut -c1-2)" - OPTARG="$(printf -- "$1"|cut -c3-)" - shift - ;; - -o|-p) - OPT="$1" - OPTARG="$2" - shift 2 - ;; - -i) - OPT="$1" - test "$#" -le 2 || expr "$2" : "[-]" >/dev/null || { - OPTARG="$2" - shift - } - shift - ;; - -f|-n|-h|-\?) - OPT="$1" - OPTARG= - shift - ;; - --) - shift - while test "$#" -gt 0 - do - SAVEARGS="${SAVEARGS:+$SAVEARGS }'$(quote "$1")'" - shift - done - break - ;; - -*) - printf "\n%s: ERROR: invalid option (%s)\n\n" "$0" "$1" - usage - ;; - *) - SAVEARGS="${SAVEARGS:+$SAVEARGS }'$(quote "$1")'" - shift - continue - ;; - esac case "$OPT" in - -i) + i) + [ "${SEEN_OPT_I}" ] && { + printf '\n%s: ERROR: -i option must not be specified more than once\n\n' "$0" + usage + } SEEN_OPT_I="yes" use_id_file "${OPTARG:-$DEFAULT_PUB_ID_FILE}" ;; - -o|-p) - SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }$OPT '$(quote "$OPTARG")'" + o|p|F) + SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }-$OPT '$(quote "${OPTARG}")'" ;; - -f) + f) FORCED=1 ;; - -n) + n) DRY_RUN=1 ;; - -h|-\?) + h|\?) usage ;; esac done +#shift all args to keep only USER_HOST +shift $((OPTIND-1)) + + -eval set -- "$SAVEARGS" if [ $# = 0 ] ; then usage @@ -189,16 +149,18 @@ if [ $# != 1 ] ; then fi # drop trailing colon -USER_HOST=$(printf "%s\n" "$1" | sed 's/:$//') +USER_HOST="$*" # tack the hostname onto SSH_OPTS SSH_OPTS="${SSH_OPTS:+$SSH_OPTS }'$(quote "$USER_HOST")'" # and populate "$@" for later use (only way to get proper quoting of options) eval set -- "$SSH_OPTS" +# shellcheck disable=SC2086 if [ -z "$(eval $GET_ID)" ] && [ -r "${PUB_ID_FILE:=$DEFAULT_PUB_ID_FILE}" ] ; then use_id_file "$PUB_ID_FILE" fi +# shellcheck disable=SC2086 if [ -z "$(eval $GET_ID)" ] ; then printf '%s: ERROR: No identities found\n' "$0" >&2 exit 1 @@ -209,6 +171,7 @@ fi populate_new_ids() { local L_SUCCESS="$1" + # shellcheck disable=SC2086 if [ "$FORCED" ] ; then NEW_IDS=$(eval $GET_ID) return @@ -218,17 +181,20 @@ populate_new_ids() { eval set -- "$SSH_OPTS" umask 0177 - local L_TMP_ID_FILE=$(mktemp ~/.ssh/ssh-copy-id_id.XXXXXXXXXX) + local L_TMP_ID_FILE + L_TMP_ID_FILE=$(mktemp ~/.ssh/ssh-copy-id_id.XXXXXXXXXX) if test $? -ne 0 || test "x$L_TMP_ID_FILE" = "x" ; then printf '%s: ERROR: mktemp failed\n' "$0" >&2 exit 1 fi local L_CLEANUP="rm -f \"$L_TMP_ID_FILE\" \"${L_TMP_ID_FILE}.stderr\"" + # shellcheck disable=SC2064 trap "$L_CLEANUP" EXIT TERM INT QUIT printf '%s: INFO: attempting to log in with the new key(s), to filter out any that are already installed\n' "$0" >&2 + # shellcheck disable=SC2086 NEW_IDS=$( eval $GET_ID | { - while read ID || [ "$ID" ] ; do + while read -r ID || [ "$ID" ] ; do printf '%s\n' "$ID" > "$L_TMP_ID_FILE" # the next line assumes $PRIV_ID_FILE only set if using a single id file - this @@ -261,21 +227,52 @@ populate_new_ids() { fi if [ -z "$NEW_IDS" ] ; then printf '\n%s: WARNING: All keys were skipped because they already exist on the remote system.\n' "$0" >&2 - printf '\t\t(if you think this is a mistake, you may want to use -f option)\n\n' "$0" >&2 + printf '\t\t(if you think this is a mistake, you may want to use -f option)\n\n' >&2 exit 0 fi printf '%s: INFO: %d key(s) remain to be installed -- if you are prompted now it is to install the new keys\n' "$0" "$(printf '%s\n' "$NEW_IDS" | wc -l)" >&2 } +# installkey_sh [target_path] +# produce a one-liner to add the keys to remote authorized_keys file +# optionally takes an alternative path for authorized_keys +installkeys_sh() { + local AUTH_KEY_FILE=${1:-.ssh/authorized_keys} + + # In setting INSTALLKEYS_SH: + # the tr puts it all on one line (to placate tcsh) + # (hence the excessive use of semi-colons (;) ) + # then in the command: + # cd to be at $HOME, just in case; + # the -z `tail ...` checks for a trailing newline. The echo adds one if was missing + # the cat adds the keys we're getting via STDIN + # and if available restorecon is used to restore the SELinux context + INSTALLKEYS_SH=$(tr '\t\n' ' ' <<-EOF) + cd; + umask 077; + mkdir -p $(dirname "${AUTH_KEY_FILE}") && + { [ -z \`tail -1c ${AUTH_KEY_FILE} 2>/dev/null\` ] || echo >> ${AUTH_KEY_FILE}; } && + cat >> ${AUTH_KEY_FILE} || + exit 1; + if type restorecon >/dev/null 2>&1; then + restorecon -F .ssh ${AUTH_KEY_FILE}; + fi +EOF + + # to defend against quirky remote shells: use 'exec sh -c' to get POSIX; + printf "exec sh -c '%s'" "${INSTALLKEYS_SH}" +} + REMOTE_VERSION=$(ssh -v -o PreferredAuthentications=',' -o ControlPath=none "$@" 2>&1 | sed -ne 's/.*remote software version //p') +# shellcheck disable=SC2029 case "$REMOTE_VERSION" in NetScreen*) populate_new_ids 1 for KEY in $(printf "%s" "$NEW_IDS" | cut -d' ' -f2) ; do - KEY_NO=$(($KEY_NO + 1)) - printf "%s\n" "$KEY" | grep ssh-dss >/dev/null || { + KEY_NO=$((KEY_NO + 1)) + printf '%s\n' "$KEY" | grep ssh-dss >/dev/null || { printf '%s: WARNING: Non-dsa key (#%d) skipped (NetScreen only supports DSA keys)\n' "$0" "$KEY_NO" >&2 continue } @@ -283,20 +280,25 @@ case "$REMOTE_VERSION" in if [ $? = 255 ] ; then printf '%s: ERROR: installation of key #%d failed (please report a bug describing what caused this, so that we can make this message useful)\n' "$0" "$KEY_NO" >&2 else - ADDED=$(($ADDED + 1)) + ADDED=$((ADDED + 1)) fi done if [ -z "$ADDED" ] ; then exit 1 fi ;; + dropbear*) + populate_new_ids 0 + [ "$DRY_RUN" ] || printf '%s\n' "$NEW_IDS" | \ + ssh "$@" "$(installkeys_sh /etc/dropbear/authorized_keys)" \ + || exit 1 + ADDED=$(printf '%s\n' "$NEW_IDS" | wc -l) + ;; *) # Assuming that the remote host treats ~/.ssh/authorized_keys as one might expect populate_new_ids 0 - # in ssh below - to defend against quirky remote shells: use 'exec sh -c' to get POSIX; - # 'cd' to be at $HOME; add a newline if it's missing; and all on one line, because tcsh. [ "$DRY_RUN" ] || printf '%s\n' "$NEW_IDS" | \ - ssh "$@" "exec sh -c 'cd ; umask 077 ; mkdir -p .ssh && { [ -z "'`tail -1c .ssh/authorized_keys 2>/dev/null`'" ] || echo >> .ssh/authorized_keys ; } && cat >> .ssh/authorized_keys || exit 1 ; if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi'" \ + ssh "$@" "$(installkeys_sh)" \ || exit 1 ADDED=$(printf '%s\n' "$NEW_IDS" | wc -l) ;; diff --git a/contrib/ssh-copy-id.1 b/contrib/ssh-copy-id.1 index ae75c79a5..b75a88365 100644 --- a/contrib/ssh-copy-id.1 +++ b/contrib/ssh-copy-id.1 @@ -1,5 +1,5 @@ .ig \" -*- nroff -*- -Copyright (c) 1999-2013 hands.com Ltd. +Copyright (c) 1999-2016 hands.com Ltd. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions -- cgit v1.2.3 From 58ca6ab6ff035ed12b5078e3e9c7199fe72c8587 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Sun, 27 Sep 2020 07:22:05 +0000 Subject: upstream: openssh 8.4 OpenBSD-Commit-ID: a29e5b372d2c00e297da8a35a3b87c9beb3b4a58 --- version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/version.h b/version.h index a2eca3ec8..c2f9c55bb 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ -/* $OpenBSD: version.h,v 1.87 2020/05/06 20:58:01 djm Exp $ */ +/* $OpenBSD: version.h,v 1.88 2020/09/27 07:22:05 djm Exp $ */ -#define SSH_VERSION "OpenSSH_8.3" +#define SSH_VERSION "OpenSSH_8.4" #define SSH_PORTABLE "p1" #define SSH_RELEASE SSH_VERSION SSH_PORTABLE -- cgit v1.2.3 From 279261e1ea8150c7c64ab5fe7cb4a4ea17acbb29 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Sun, 27 Sep 2020 17:25:01 +1000 Subject: update version numbers --- README | 2 +- contrib/redhat/openssh.spec | 2 +- contrib/suse/openssh.spec | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README b/README index cae4c28c7..f69b441b5 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -See https://www.openssh.com/releasenotes.html#8.3p1 for the release notes. +See https://www.openssh.com/releasenotes.html#8.4p1 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/contrib/redhat/openssh.spec b/contrib/redhat/openssh.spec index 2780d6b28..df99f7d73 100644 --- a/contrib/redhat/openssh.spec +++ b/contrib/redhat/openssh.spec @@ -1,4 +1,4 @@ -%global ver 8.3p1 +%global ver 8.4p1 %global rel 1%{?dist} # OpenSSH privilege separation requires a user & group ID diff --git a/contrib/suse/openssh.spec b/contrib/suse/openssh.spec index 5f74247a4..e6459e82d 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.3p1 +Version: 8.4p1 URL: https://www.openssh.com/ Release: 1 Source0: openssh-%{version}.tar.gz -- cgit v1.2.3